diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/sfwk-wpe.c | 45 |
1 files changed, 16 insertions, 29 deletions
diff --git a/src/sfwk-wpe.c b/src/sfwk-wpe.c index 99acd56..a9de282 100644 --- a/src/sfwk-wpe.c +++ b/src/sfwk-wpe.c @@ -236,28 +236,6 @@ wpe_toplevel_sdl3_each_view_resized(WPEToplevel *toplevel, WPEView *view, void * // return TRUE; // } -// static void -// wpe_toplevel_sdl3_set_title(WPEToplevel *toplevel, const char *title) -// { -// WPEToplevelSDL3 *self = WPE_TOPLEVEL_SDL3(toplevel); -// if (self->window) -// SDL_SetWindowTitle(self->window, title ? title : SDL_GetAppMetadataProperty(SDL_PROP_APP_METADATA_NAME_STRING)); -// } - -// static gboolean -// wpe_toplevel_sdl3_resize(WPEToplevel *toplevel, int width, int height) -// { -// WPEToplevelSDL3 *self = WPE_TOPLEVEL_SDL3(toplevel); -// if (!SDL_SetWindowSize(self->window, width, height)) { -// g_warning("Could not resize SDL window for toplevel %p: %s", self, SDL_GetError()); -// return FALSE; -// } -// -// wpe_toplevel_resized(toplevel, width, height); -// wpe_toplevel_foreach_view(toplevel, wpe_toplevel_sdl3_each_view_resized, NULL); -// return TRUE; -// } - static void wpe_toplevel_sdl3_constructed(GObject *object) { @@ -457,10 +435,10 @@ static unsigned wpe_button_for_sdl_button(unsigned index) { switch (index) { - case 1: return WPE_BUTTON_PRIMARY; - case 2: return WPE_BUTTON_MIDDLE; - case 3: return WPE_BUTTON_SECONDARY; - default: return 0; + case 1: return WPE_BUTTON_PRIMARY; + case 2: return WPE_BUTTON_MIDDLE; + case 3: return WPE_BUTTON_SECONDARY; + default: return 0; } } @@ -492,8 +470,8 @@ SFWKContext* sfwk_init() { context->display = g_object_new(wpe_display_sdl3_get_type(), NULL); - // ensure_initialized will do the GL context later, hopefully - + // ensure_initialized will do the GL context later + return context; } @@ -753,6 +731,15 @@ bool sfwk_process_event(SFWKContext *context, SFWKWebView* webview, SDL_Event *e return false; } +static void sfwk_webview_resize_handler(SaffronWidget* self) { + if (!self) return; + SFWKWebView* webview = (SFWKWebView*)self; + if (!webview) return; + if (!webview->wpe.initialized) return; + wpe_toplevel_resized(webview->wpe.toplevel, self->w, self->h); + wpe_toplevel_foreach_view(webview->wpe.toplevel, wpe_toplevel_sdl3_each_view_resized, NULL); +} + SFWKWebView* sfwk_webview_new(SFWKContext* context, const char* url, int w, int h) { SFWKWebView* webview = malloc(sizeof(SFWKWebView)); if (!webview) return NULL; // good fucking luck @@ -764,7 +751,7 @@ SFWKWebView* sfwk_webview_new(SFWKContext* context, const char* url, int w, int ((SaffronWidget*)webview)->h = webview->h = h; ((SaffronWidget*)webview)->draw = sfwk_webview_draw; ((SaffronWidget*)webview)->free = sfwk_webview_free; - // add an on_resize here + ((SaffronWidget*)webview)->on_resize = sfwk_webview_resize_handler; webview->context = context; webview->url = strdup(url); |
