Implement "right-align-sidepanel" to align the panel on the right
This commit is contained in:
parent
cbe3e75e80
commit
ca8d22b9b4
2 changed files with 45 additions and 1 deletions
|
@ -3865,7 +3865,8 @@ _midori_browser_update_settings (MidoriBrowser* browser)
|
||||||
gboolean remember_last_window_size;
|
gboolean remember_last_window_size;
|
||||||
gint last_window_width, last_window_height;
|
gint last_window_width, last_window_height;
|
||||||
MidoriWindowState last_window_state;
|
MidoriWindowState last_window_state;
|
||||||
gboolean compact_sidepanel;
|
gboolean compact_sidepanel, right_align_sidepanel;
|
||||||
|
GtkWidget* hpaned, *vpaned;
|
||||||
gint last_panel_position, last_panel_page;
|
gint last_panel_position, last_panel_page;
|
||||||
gboolean show_menubar, show_navigationbar, show_bookmarkbar;
|
gboolean show_menubar, show_navigationbar, show_bookmarkbar;
|
||||||
gboolean show_panel, show_statusbar;
|
gboolean show_panel, show_statusbar;
|
||||||
|
@ -3883,6 +3884,7 @@ _midori_browser_update_settings (MidoriBrowser* browser)
|
||||||
"last-window-height", &last_window_height,
|
"last-window-height", &last_window_height,
|
||||||
"last-window-state", &last_window_state,
|
"last-window-state", &last_window_state,
|
||||||
"compact-sidepanel", &compact_sidepanel,
|
"compact-sidepanel", &compact_sidepanel,
|
||||||
|
"right-align-sidepanel", &right_align_sidepanel,
|
||||||
"last-panel-position", &last_panel_position,
|
"last-panel-position", &last_panel_position,
|
||||||
"last-panel-page", &last_panel_page,
|
"last-panel-page", &last_panel_page,
|
||||||
"show-menubar", &show_menubar,
|
"show-menubar", &show_menubar,
|
||||||
|
@ -3938,6 +3940,24 @@ _midori_browser_update_settings (MidoriBrowser* browser)
|
||||||
}
|
}
|
||||||
|
|
||||||
midori_panel_set_compact (MIDORI_PANEL (browser->panel), compact_sidepanel);
|
midori_panel_set_compact (MIDORI_PANEL (browser->panel), compact_sidepanel);
|
||||||
|
hpaned = gtk_widget_get_parent (browser->panel);
|
||||||
|
vpaned = gtk_widget_get_parent (browser->notebook);
|
||||||
|
g_object_ref (browser->panel);
|
||||||
|
g_object_ref (vpaned);
|
||||||
|
gtk_container_remove (GTK_CONTAINER (hpaned), browser->panel);
|
||||||
|
gtk_container_remove (GTK_CONTAINER (hpaned), vpaned);
|
||||||
|
if (right_align_sidepanel)
|
||||||
|
{
|
||||||
|
gtk_paned_pack1 (GTK_PANED (hpaned), vpaned, FALSE, FALSE);
|
||||||
|
gtk_paned_pack2 (GTK_PANED (hpaned), browser->panel, FALSE, FALSE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gtk_paned_pack1 (GTK_PANED (hpaned), browser->panel, FALSE, FALSE);
|
||||||
|
gtk_paned_pack2 (GTK_PANED (hpaned), vpaned, FALSE, FALSE);
|
||||||
|
}
|
||||||
|
g_object_unref (browser->panel);
|
||||||
|
g_object_unref (vpaned);
|
||||||
gtk_paned_set_position (GTK_PANED (gtk_widget_get_parent (browser->panel)),
|
gtk_paned_set_position (GTK_PANED (gtk_widget_get_parent (browser->panel)),
|
||||||
last_panel_position);
|
last_panel_position);
|
||||||
midori_panel_set_current_page (MIDORI_PANEL (browser->panel), last_panel_page);
|
midori_panel_set_current_page (MIDORI_PANEL (browser->panel), last_panel_page);
|
||||||
|
|
|
@ -42,6 +42,7 @@ struct _MidoriWebSettings
|
||||||
gboolean progress_in_location;
|
gboolean progress_in_location;
|
||||||
gchar* toolbar_items;
|
gchar* toolbar_items;
|
||||||
gboolean compact_sidepanel;
|
gboolean compact_sidepanel;
|
||||||
|
gboolean right_align_sidepanel;
|
||||||
|
|
||||||
MidoriStartup load_on_startup;
|
MidoriStartup load_on_startup;
|
||||||
gchar* homepage;
|
gchar* homepage;
|
||||||
|
@ -107,6 +108,7 @@ enum
|
||||||
PROP_PROGRESS_IN_LOCATION,
|
PROP_PROGRESS_IN_LOCATION,
|
||||||
PROP_TOOLBAR_ITEMS,
|
PROP_TOOLBAR_ITEMS,
|
||||||
PROP_COMPACT_SIDEPANEL,
|
PROP_COMPACT_SIDEPANEL,
|
||||||
|
PROP_RIGHT_ALIGN_SIDEPANEL,
|
||||||
|
|
||||||
PROP_LOAD_ON_STARTUP,
|
PROP_LOAD_ON_STARTUP,
|
||||||
PROP_HOMEPAGE,
|
PROP_HOMEPAGE,
|
||||||
|
@ -463,6 +465,22 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
|
||||||
FALSE,
|
FALSE,
|
||||||
flags));
|
flags));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MidoriWebSettings:right-sidepanel:
|
||||||
|
*
|
||||||
|
* Whether to align the sidepanel on the right.
|
||||||
|
*
|
||||||
|
* Since: 0.1.3
|
||||||
|
*/
|
||||||
|
g_object_class_install_property (gobject_class,
|
||||||
|
PROP_RIGHT_ALIGN_SIDEPANEL,
|
||||||
|
g_param_spec_boolean (
|
||||||
|
"right-align-sidepanel",
|
||||||
|
_("Align sidepanel on the right"),
|
||||||
|
_("Whether to align the sidepanel on the right"),
|
||||||
|
FALSE,
|
||||||
|
flags));
|
||||||
|
|
||||||
|
|
||||||
g_object_class_install_property (gobject_class,
|
g_object_class_install_property (gobject_class,
|
||||||
PROP_LOAD_ON_STARTUP,
|
PROP_LOAD_ON_STARTUP,
|
||||||
|
@ -1005,6 +1023,9 @@ midori_web_settings_set_property (GObject* object,
|
||||||
case PROP_COMPACT_SIDEPANEL:
|
case PROP_COMPACT_SIDEPANEL:
|
||||||
web_settings->compact_sidepanel = g_value_get_boolean (value);
|
web_settings->compact_sidepanel = g_value_get_boolean (value);
|
||||||
break;
|
break;
|
||||||
|
case PROP_RIGHT_ALIGN_SIDEPANEL:
|
||||||
|
web_settings->right_align_sidepanel = g_value_get_boolean (value);
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_LOAD_ON_STARTUP:
|
case PROP_LOAD_ON_STARTUP:
|
||||||
web_settings->load_on_startup = g_value_get_enum (value);
|
web_settings->load_on_startup = g_value_get_enum (value);
|
||||||
|
@ -1189,6 +1210,9 @@ midori_web_settings_get_property (GObject* object,
|
||||||
case PROP_COMPACT_SIDEPANEL:
|
case PROP_COMPACT_SIDEPANEL:
|
||||||
g_value_set_boolean (value, web_settings->compact_sidepanel);
|
g_value_set_boolean (value, web_settings->compact_sidepanel);
|
||||||
break;
|
break;
|
||||||
|
case PROP_RIGHT_ALIGN_SIDEPANEL:
|
||||||
|
g_value_set_boolean (value, web_settings->right_align_sidepanel);
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_LOAD_ON_STARTUP:
|
case PROP_LOAD_ON_STARTUP:
|
||||||
g_value_set_enum (value, web_settings->load_on_startup);
|
g_value_set_enum (value, web_settings->load_on_startup);
|
||||||
|
|
Loading…
Reference in a new issue