Show a notification upon opening a tab or window
The notification is shown when in fullscreen mode or the window is maximised, and a window is opened or a tab is opened while the tab bar is not visible.
This commit is contained in:
parent
7152189d82
commit
a2fc8f405c
3 changed files with 29 additions and 8 deletions
|
@ -4,7 +4,7 @@ BOOLEAN:OBJECT,UINT
|
||||||
BOOLEAN:VOID
|
BOOLEAN:VOID
|
||||||
OBJECT:OBJECT
|
OBJECT:OBJECT
|
||||||
VOID:BOOLEAN,STRING
|
VOID:BOOLEAN,STRING
|
||||||
VOID:OBJECT,ENUM
|
VOID:OBJECT,ENUM,BOOLEAN
|
||||||
VOID:OBJECT,INT,INT
|
VOID:OBJECT,INT,INT
|
||||||
VOID:POINTER,INT
|
VOID:POINTER,INT
|
||||||
VOID:STRING,BOOLEAN
|
VOID:STRING,BOOLEAN
|
||||||
|
|
|
@ -1325,6 +1325,7 @@ static void
|
||||||
midori_view_new_view_cb (GtkWidget* view,
|
midori_view_new_view_cb (GtkWidget* view,
|
||||||
GtkWidget* new_view,
|
GtkWidget* new_view,
|
||||||
MidoriNewView where,
|
MidoriNewView where,
|
||||||
|
gboolean user_initiated,
|
||||||
MidoriBrowser* browser)
|
MidoriBrowser* browser)
|
||||||
{
|
{
|
||||||
midori_browser_view_copy_history (new_view, view, TRUE);
|
midori_browser_view_copy_history (new_view, view, TRUE);
|
||||||
|
@ -1341,6 +1342,22 @@ midori_view_new_view_cb (GtkWidget* view,
|
||||||
if (where != MIDORI_NEW_VIEW_BACKGROUND)
|
if (where != MIDORI_NEW_VIEW_BACKGROUND)
|
||||||
midori_browser_set_current_page (browser, n);
|
midori_browser_set_current_page (browser, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!user_initiated)
|
||||||
|
{
|
||||||
|
GdkWindow* window = gtk_widget_get_window (GTK_WIDGET (browser));
|
||||||
|
GdkWindowState state = gdk_window_get_state (window);
|
||||||
|
if ((state | GDK_WINDOW_STATE_MAXIMIZED)
|
||||||
|
|| (state | GDK_WINDOW_STATE_FULLSCREEN))
|
||||||
|
{
|
||||||
|
if (where == MIDORI_NEW_VIEW_WINDOW)
|
||||||
|
g_signal_emit (browser, signals[SEND_NOTIFICATION], 0,
|
||||||
|
_("New Window"), _("A new window has been opened"));
|
||||||
|
else if (!browser->show_tabs)
|
||||||
|
g_signal_emit (browser, signals[SEND_NOTIFICATION], 0,
|
||||||
|
_("New Tab"), _("A new tab has been opened"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if WEBKIT_CHECK_VERSION (1, 1, 3)
|
#if WEBKIT_CHECK_VERSION (1, 1, 3)
|
||||||
|
@ -1817,7 +1834,7 @@ midori_browser_class_init (MidoriBrowserClass* class)
|
||||||
* @message: the message for the notification
|
* @message: the message for the notification
|
||||||
*
|
*
|
||||||
* Emitted when a browser wants to display a notification message,
|
* Emitted when a browser wants to display a notification message,
|
||||||
* e.g. when a download has been completed.
|
* e.g. when a download has been completed or a new tab was opened.
|
||||||
*
|
*
|
||||||
* Since: 0.1.7
|
* Since: 0.1.7
|
||||||
*/
|
*/
|
||||||
|
@ -4544,7 +4561,7 @@ _action_tab_duplicate_activate (GtkAction* action,
|
||||||
GtkWidget* new_view = midori_view_new_with_title (
|
GtkWidget* new_view = midori_view_new_with_title (
|
||||||
NULL, browser->settings, FALSE);
|
NULL, browser->settings, FALSE);
|
||||||
const gchar* uri = midori_view_get_display_uri (MIDORI_VIEW (view));
|
const gchar* uri = midori_view_get_display_uri (MIDORI_VIEW (view));
|
||||||
g_signal_emit_by_name (view, "new-view", new_view, where);
|
g_signal_emit_by_name (view, "new-view", new_view, where, TRUE);
|
||||||
midori_view_set_uri (MIDORI_VIEW (new_view), uri);
|
midori_view_set_uri (MIDORI_VIEW (new_view), uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -337,12 +337,15 @@ midori_view_class_init (MidoriViewClass* class)
|
||||||
* @view: the object on which the signal is emitted
|
* @view: the object on which the signal is emitted
|
||||||
* @new_view: a newly created view
|
* @new_view: a newly created view
|
||||||
* @where: where to open the view
|
* @where: where to open the view
|
||||||
|
* @user_initiated: %TRUE if the user actively opened the new view
|
||||||
*
|
*
|
||||||
* Emitted when a new view is created. The value of
|
* Emitted when a new view is created. The value of
|
||||||
* @where determines where to open the view according
|
* @where determines where to open the view according
|
||||||
* to how it was opened and user preferences.
|
* to how it was opened and user preferences.
|
||||||
*
|
*
|
||||||
* Since: 0.1.2
|
* Since: 0.1.2
|
||||||
|
*
|
||||||
|
* Since 0.3.4 a boolean argument was added.
|
||||||
*/
|
*/
|
||||||
signals[NEW_VIEW] = g_signal_new (
|
signals[NEW_VIEW] = g_signal_new (
|
||||||
"new-view",
|
"new-view",
|
||||||
|
@ -351,10 +354,11 @@ midori_view_class_init (MidoriViewClass* class)
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
NULL,
|
NULL,
|
||||||
midori_cclosure_marshal_VOID__OBJECT_ENUM,
|
midori_cclosure_marshal_VOID__OBJECT_ENUM_BOOLEAN,
|
||||||
G_TYPE_NONE, 2,
|
G_TYPE_NONE, 3,
|
||||||
MIDORI_TYPE_VIEW,
|
MIDORI_TYPE_VIEW,
|
||||||
MIDORI_TYPE_NEW_VIEW);
|
MIDORI_TYPE_NEW_VIEW,
|
||||||
|
G_TYPE_BOOLEAN);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MidoriView::download-requested:
|
* MidoriView::download-requested:
|
||||||
|
@ -2885,7 +2889,7 @@ webkit_web_view_web_view_ready_cb (GtkWidget* web_view,
|
||||||
where = MIDORI_NEW_VIEW_WINDOW;
|
where = MIDORI_NEW_VIEW_WINDOW;
|
||||||
|
|
||||||
gtk_widget_show (new_view);
|
gtk_widget_show (new_view);
|
||||||
g_signal_emit (view, signals[NEW_VIEW], 0, new_view, where);
|
g_signal_emit (view, signals[NEW_VIEW], 0, new_view, where, FALSE);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -4607,7 +4611,7 @@ midori_view_tab_label_menu_duplicate_tab_cb (GtkWidget* menuitem,
|
||||||
GtkWidget* new_view = midori_view_new_with_title (
|
GtkWidget* new_view = midori_view_new_with_title (
|
||||||
NULL, view->settings, FALSE);
|
NULL, view->settings, FALSE);
|
||||||
const gchar* uri = midori_view_get_display_uri (MIDORI_VIEW (view));
|
const gchar* uri = midori_view_get_display_uri (MIDORI_VIEW (view));
|
||||||
g_signal_emit (view, signals[NEW_VIEW], 0, new_view, where);
|
g_signal_emit (view, signals[NEW_VIEW], 0, new_view, where, TRUE);
|
||||||
midori_view_set_uri (MIDORI_VIEW (new_view), uri);
|
midori_view_set_uri (MIDORI_VIEW (new_view), uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue