[Xfce4-commits] [panel-plugins/xfce4-whiskermenu-plugin] 04/09: Use GtkStack for pages.
noreply at xfce.org
noreply at xfce.org
Sun Apr 15 01:13:23 CEST 2018
This is an automated email from the git hooks/post-receive script.
g o t t c o d e p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository panel-plugins/xfce4-whiskermenu-plugin.
commit facaf74ec2a10d0bc32b3ba8a56bb0dae2b87bf6
Author: Graeme Gott <graeme at gottcode.org>
Date: Tue Oct 24 10:08:39 2017 -0400
Use GtkStack for pages.
---
panel-plugin/window.cpp | 39 ++++++++++++---------------------------
panel-plugin/window.h | 2 +-
2 files changed, 13 insertions(+), 28 deletions(-)
diff --git a/panel-plugin/window.cpp b/panel-plugin/window.cpp
index c4a2cc4..2a6da0f 100644
--- a/panel-plugin/window.cpp
+++ b/panel-plugin/window.cpp
@@ -220,11 +220,11 @@ WhiskerMenu::Window::Window() :
gtk_box_pack_start(m_contents_box, m_search_results->get_widget(), true, true, 0);
// Create box for packing launcher pages
- m_panels_box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0));
- gtk_box_pack_start(m_contents_box, GTK_WIDGET(m_panels_box), true, true, 0);
- gtk_box_pack_start(m_panels_box, m_favorites->get_widget(), true, true, 0);
- gtk_box_pack_start(m_panels_box, m_recent->get_widget(), true, true, 0);
- gtk_box_pack_start(m_panels_box, m_applications->get_widget(), true, true, 0);
+ m_panels_stack = GTK_STACK(gtk_stack_new());
+ gtk_box_pack_start(m_contents_box, GTK_WIDGET(m_panels_stack), true, true, 0);
+ gtk_stack_add_named(m_panels_stack, m_favorites->get_widget(), "favorites");
+ gtk_stack_add_named(m_panels_stack, m_recent->get_widget(), "recent");
+ gtk_stack_add_named(m_panels_stack, m_applications->get_widget(), "applications");
// Create box for packing sidebar
m_sidebar_buttons = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0));
@@ -245,9 +245,6 @@ WhiskerMenu::Window::Window() :
// Show widgets
gtk_widget_show_all(frame);
- gtk_widget_hide(m_favorites->get_widget());
- gtk_widget_hide(m_recent->get_widget());
- gtk_widget_hide(m_applications->get_widget());
gtk_widget_hide(m_search_results->get_widget());
m_default_button->set_active(true);
gtk_widget_show(frame);
@@ -306,9 +303,6 @@ void WhiskerMenu::Window::hide()
// Hide window
gtk_widget_hide(GTK_WIDGET(m_window));
- // Reset mouse cursor by forcing default page to hide
- gtk_widget_hide(m_default_page->get_widget());
-
// Switch back to default page
show_default_page();
}
@@ -348,9 +342,6 @@ void WhiskerMenu::Window::show(GtkWidget* parent, bool horizontal)
// Focus search entry
gtk_widget_grab_focus(GTK_WIDGET(m_search_entry));
- // Reset mouse cursor by forcing default page to hide
- gtk_widget_show(m_default_page->get_widget());
-
// Update default page
if (wm_settings->display_recent && (m_default_page == m_favorites))
{
@@ -518,12 +509,12 @@ void WhiskerMenu::Window::show(GtkWidget* parent, bool horizontal)
if ((layout_left && !wm_settings->position_categories_alternate)
|| (!layout_left && wm_settings->position_categories_alternate))
{
- gtk_box_reorder_child(m_contents_box, GTK_WIDGET(m_panels_box), 1);
+ gtk_box_reorder_child(m_contents_box, GTK_WIDGET(m_panels_stack), 1);
gtk_box_reorder_child(m_contents_box, GTK_WIDGET(m_sidebar), 2);
}
else
{
- gtk_box_reorder_child(m_contents_box, GTK_WIDGET(m_panels_box), 2);
+ gtk_box_reorder_child(m_contents_box, GTK_WIDGET(m_panels_stack), 2);
gtk_box_reorder_child(m_contents_box, GTK_WIDGET(m_sidebar), 1);
}
if (layout_left != m_layout_left)
@@ -919,9 +910,7 @@ gboolean WhiskerMenu::Window::on_draw_event(GtkWidget* widget, cairo_t* cr)
void WhiskerMenu::Window::favorites_toggled()
{
m_favorites->reset_selection();
- gtk_widget_hide(m_recent->get_widget());
- gtk_widget_hide(m_applications->get_widget());
- gtk_widget_show_all(m_favorites->get_widget());
+ gtk_stack_set_visible_child_name(m_panels_stack, "favorites");
gtk_widget_grab_focus(GTK_WIDGET(m_search_entry));
}
@@ -930,9 +919,7 @@ void WhiskerMenu::Window::favorites_toggled()
void WhiskerMenu::Window::recent_toggled()
{
m_recent->reset_selection();
- gtk_widget_hide(m_favorites->get_widget());
- gtk_widget_hide(m_applications->get_widget());
- gtk_widget_show_all(m_recent->get_widget());
+ gtk_stack_set_visible_child_name(m_panels_stack, "recent");
gtk_widget_grab_focus(GTK_WIDGET(m_search_entry));
}
@@ -941,9 +928,7 @@ void WhiskerMenu::Window::recent_toggled()
void WhiskerMenu::Window::category_toggled()
{
m_applications->reset_selection();
- gtk_widget_hide(m_favorites->get_widget());
- gtk_widget_hide(m_recent->get_widget());
- gtk_widget_show_all(m_applications->get_widget());
+ gtk_stack_set_visible_child_name(m_panels_stack, "applications");
gtk_widget_grab_focus(GTK_WIDGET(m_search_entry));
}
@@ -991,14 +976,14 @@ void WhiskerMenu::Window::search()
{
// Show search results
gtk_widget_hide(GTK_WIDGET(m_sidebar));
- gtk_widget_hide(GTK_WIDGET(m_panels_box));
+ gtk_widget_hide(GTK_WIDGET(m_panels_stack));
gtk_widget_show(m_search_results->get_widget());
}
else
{
// Show active panel
gtk_widget_hide(m_search_results->get_widget());
- gtk_widget_show(GTK_WIDGET(m_panels_box));
+ gtk_widget_show(GTK_WIDGET(m_panels_stack));
gtk_widget_show(GTK_WIDGET(m_sidebar));
}
diff --git a/panel-plugin/window.h b/panel-plugin/window.h
index 68c72a9..66d1654 100644
--- a/panel-plugin/window.h
+++ b/panel-plugin/window.h
@@ -99,7 +99,7 @@ private:
GtkBox* m_commands_box;
GtkBox* m_search_box;
GtkBox* m_contents_box;
- GtkBox* m_panels_box;
+ GtkStack* m_panels_stack;
ProfilePicture* m_profilepic;
GtkLabel* m_username;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list