Changeset 141585 in webkit
- Timestamp:
- Feb 1, 2013 6:11:18 AM (11 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r141578 r141585 1 2013-02-01 Manuel Rego Casasnovas <rego@igalia.com> 2 3 [GTK][WK2] MiniBrowser fullscreen signals support 4 https://bugs.webkit.org/show_bug.cgi?id=108005 5 6 Reviewed by Carlos Garcia Campos. 7 8 Shows a label for 2 seconds using overlay (if GTK >= 3.2.0) and hides 9 the toolbar when entering fullscreen. When leaving fullscreen the 10 label is hidden (if it's not hidden yet) and the toolbar is shown again. 11 12 * MiniBrowser/gtk/BrowserWindow.c: 13 (_BrowserWindow): 14 (fullScreenMessageTimeoutCallback): 15 (webViewEnterFullScreen): 16 (webViewLeaveFullScreen): 17 (browserWindowFinalize): 18 (browserWindowConstructed): 19 1 20 2013-02-01 Alexis Menard <alexis@webkit.org> 2 21 -
trunk/Tools/MiniBrowser/gtk/BrowserWindow.c
r130282 r141585 53 53 GtkWidget *downloadsBar; 54 54 GdkPixbuf *favicon; 55 #if GTK_CHECK_VERSION(3, 2, 0) 56 GtkWidget *fullScreenMessageLabel; 57 guint fullScreenMessageLabelId; 58 #endif 55 59 }; 56 60 … … 262 266 } 263 267 268 #if GTK_CHECK_VERSION(3, 2, 0) 269 static gboolean fullScreenMessageTimeoutCallback(BrowserWindow *window) 270 { 271 gtk_widget_hide(window->fullScreenMessageLabel); 272 window->fullScreenMessageLabelId = 0; 273 return FALSE; 274 } 275 #endif 276 277 static gboolean webViewEnterFullScreen(WebKitWebView *webView, BrowserWindow *window) 278 { 279 #if GTK_CHECK_VERSION(3, 2, 0) 280 const gchar *titleOrURI = webkit_web_view_get_title(window->webView); 281 if (!titleOrURI) 282 titleOrURI = webkit_web_view_get_uri(window->webView); 283 gchar *message = g_strdup_printf("%s is now full screen. Press ESC or f to exit.", titleOrURI); 284 gtk_label_set_text(GTK_LABEL(window->fullScreenMessageLabel), message); 285 g_free(message); 286 287 gtk_widget_show(window->fullScreenMessageLabel); 288 289 window->fullScreenMessageLabelId = g_timeout_add_seconds(2, (GSourceFunc)fullScreenMessageTimeoutCallback, window); 290 #endif 291 292 gtk_widget_hide(window->toolbar); 293 294 return FALSE; 295 } 296 297 static gboolean webViewLeaveFullScreen(WebKitWebView *webView, BrowserWindow *window) 298 { 299 #if GTK_CHECK_VERSION(3, 2, 0) 300 if (window->fullScreenMessageLabelId) { 301 g_source_remove(window->fullScreenMessageLabelId); 302 window->fullScreenMessageLabelId = 0; 303 } 304 gtk_widget_hide(window->fullScreenMessageLabel); 305 #endif 306 307 gtk_widget_show(window->toolbar); 308 309 return FALSE; 310 } 311 264 312 static GtkWidget *webViewCreate(WebKitWebView *webView, BrowserWindow *window) 265 313 { … … 396 444 window->favicon = NULL; 397 445 } 446 447 #if GTK_CHECK_VERSION(3, 2, 0) 448 if (window->fullScreenMessageLabelId) 449 g_source_remove(window->fullScreenMessageLabelId); 450 #endif 398 451 399 452 G_OBJECT_CLASS(browser_window_parent_class)->finalize(gObject); … … 514 567 g_signal_connect(window->webView, "notify::zoom-level", G_CALLBACK(webViewZoomLevelChanged), window); 515 568 g_signal_connect(window->webView, "notify::favicon", G_CALLBACK(faviconChanged), window); 569 g_signal_connect(window->webView, "enter-fullscreen", G_CALLBACK(webViewEnterFullScreen), window); 570 g_signal_connect(window->webView, "leave-fullscreen", G_CALLBACK(webViewLeaveFullScreen), window); 516 571 517 572 g_signal_connect(webkit_web_view_get_context(window->webView), "download-started", G_CALLBACK(downloadStarted), window); … … 535 590 536 591 gtk_container_add(GTK_CONTAINER(overlay), GTK_WIDGET(window->webView)); 592 593 window->fullScreenMessageLabel = gtk_label_new(NULL); 594 gtk_widget_set_halign(window->fullScreenMessageLabel, GTK_ALIGN_CENTER); 595 gtk_widget_set_valign(window->fullScreenMessageLabel, GTK_ALIGN_CENTER); 596 gtk_widget_set_no_show_all(window->fullScreenMessageLabel, TRUE); 597 gtk_overlay_add_overlay(GTK_OVERLAY(overlay), window->fullScreenMessageLabel); 537 598 #else 538 599 gtk_box_pack_start(GTK_BOX(window->mainBox), GTK_WIDGET(window->webView), TRUE, TRUE, 0);
Note: See TracChangeset
for help on using the changeset viewer.