]> spindle.queued.net Git - midori/commitdiff
Make detached panels normal Hildon windows on Hildon
authorChristian Dywan <christian@twotoasts.de>
Fri, 30 Oct 2009 20:00:58 +0000 (21:00 +0100)
committerChristian Dywan <christian@twotoasts.de>
Fri, 30 Oct 2009 20:02:45 +0000 (21:02 +0100)
The window should not be hidden from the task launcher and not be
transient either. Further more the toolbar needs to go to the bottom.
Last but not least, we don't need the option button.

midori/midori-panel.c

index c77c9ecb7d9839ad59e01e42a459a476ef2661e5..4d924035c1230fb83a228cc88f7e4e5fd62d9f30 100644 (file)
 
 #include <glib/gi18n.h>
 
+#include "config.h"
+
+#ifdef HAVE_HILDON_2_2
+    #include <hildon/hildon.h>
+#endif
+
 struct _MidoriPanel
 {
     GtkHBox parent_instance;
@@ -289,16 +295,21 @@ midori_panel_button_detach_clicked_cb (GtkWidget*   toolbutton,
     GtkWidget* scrolled = gtk_notebook_get_nth_page (
         GTK_NOTEBOOK (panel->notebook), n);
     GtkWidget* menuitem = g_object_get_data (G_OBJECT (scrolled), "panel-menuitem");
-    GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
     GtkWidget* vbox = gtk_vbox_new (FALSE, 0);
-    g_object_set_data (G_OBJECT (window), "scrolled", scrolled);
-    gtk_window_set_title (GTK_WINDOW (window), title);
+    #if HAVE_HILDON
+    GtkWidget* window = hildon_window_new ();
+    hildon_program_add_window (hildon_program_get_instance (), HILDON_WINDOW (window));
+    #else
+    GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
     gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE);
     gtk_window_set_default_size (GTK_WINDOW (window), 250, 400);
     gtk_window_set_transient_for (GTK_WINDOW (window),
         GTK_WINDOW (gtk_widget_get_toplevel (panel->notebook)));
+    #endif
     gtk_widget_show (vbox);
     gtk_container_add (GTK_CONTAINER (window), vbox);
+    g_object_set_data (G_OBJECT (window), "scrolled", scrolled);
+    gtk_window_set_title (GTK_WINDOW (window), title);
     if (menuitem)
         gtk_widget_hide (menuitem);
     g_signal_handlers_disconnect_by_func (
@@ -307,7 +318,11 @@ midori_panel_button_detach_clicked_cb (GtkWidget*   toolbutton,
     gtk_container_remove (GTK_CONTAINER (panel->toolbar), GTK_WIDGET (toolitem));
     g_object_ref (toolbar);
     gtk_container_remove (GTK_CONTAINER (panel->toolbook), toolbar);
+    #if HAVE_HILDON
+    hildon_window_add_toolbar (HILDON_WINDOW (window), GTK_TOOLBAR (toolbar));
+    #else
     gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, FALSE, 0);
+    #endif
     g_object_unref (toolbar);
     g_object_set_data (G_OBJECT (scrolled), "panel-toolbar", toolbar);
     g_object_ref (scrolled);
@@ -462,9 +477,6 @@ midori_panel_set_property (GObject*      object,
         break;
     case PROP_SHOW_TITLES:
         panel->show_titles = g_value_get_boolean (value);
-        #if HAVE_HILDON
-        panel->show_titles = TRUE;
-        #endif
         gtk_toolbar_set_style (GTK_TOOLBAR (panel->toolbar),
             panel->show_titles ? GTK_TOOLBAR_BOTH : GTK_TOOLBAR_ICONS);
         break;
@@ -680,7 +692,6 @@ midori_panel_show_titles_toggled_cb (GtkWidget*   menuitem,
 {
     g_object_set (panel, "show-titles", !panel->show_titles, NULL);
 }
-#endif
 
 static void
 midori_panel_show_controls_toggled_cb (GtkWidget*   menuitem,
@@ -701,7 +712,6 @@ midori_panel_options_clicked_cb (GtkToolItem* toolitem,
     n = midori_panel_get_current_page (panel);
     viewable = midori_panel_get_nth_page (panel, n);
     menu = gtk_menu_new ();
-    #if !HAVE_HILDON
     menuitem = gtk_check_menu_item_new_with_mnemonic (_("Show panel _titles"));
     gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem),
                                     panel->show_titles);
@@ -709,7 +719,6 @@ midori_panel_options_clicked_cb (GtkToolItem* toolitem,
         G_CALLBACK (midori_panel_show_titles_toggled_cb), panel);
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
     gtk_widget_show (menuitem);
-    #endif
     menuitem = gtk_check_menu_item_new_with_mnemonic (_("Show operating _controls"));
     gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem),
                                     panel->show_controls);
@@ -722,6 +731,7 @@ midori_panel_options_clicked_cb (GtkToolItem* toolitem,
     katze_widget_popup (GTK_WIDGET (toolitem), GTK_MENU (menu),
                         NULL, SOKOKE_MENU_POSITION_LEFT);
 }
+#endif
 
 /**
  * midori_panel_append_page:
@@ -749,7 +759,9 @@ midori_panel_append_page (MidoriPanel*    panel,
     GObjectClass* gobject_class;
     GtkWidget* widget;
     GtkWidget* toolbar;
+    #if !HAVE_HILDON
     GtkToolItem* toolitem;
+    #endif
     const gchar* label;
     guint n;
 
@@ -780,12 +792,14 @@ midori_panel_append_page (MidoriPanel*    panel,
     gtk_container_add (GTK_CONTAINER (panel->notebook), scrolled);
 
     toolbar = midori_viewable_get_toolbar (viewable);
+    #if !HAVE_HILDON
     toolitem = gtk_tool_button_new_from_stock (GTK_STOCK_PROPERTIES);
     gtk_tool_item_set_tooltip_text (toolitem, _("Options"));
     g_signal_connect (toolitem, "clicked",
         G_CALLBACK (midori_panel_options_clicked_cb), panel);
     gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, 0);
     gtk_widget_show (GTK_WIDGET (toolitem));
+    #endif
     gtk_widget_show (toolbar);
     gtk_container_add (GTK_CONTAINER (panel->toolbook), toolbar);
     g_signal_connect (viewable, "destroy",