aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sfwk-wpe.c45
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);