[gnome-panel] Don't show handles on locked and unmovable applets
- From: William Jon McCann <mccann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] Don't show handles on locked and unmovable applets
- Date: Mon, 21 Feb 2011 00:58:34 +0000 (UTC)
commit 5e22739b7f79f26bf8a604920a6d0158e664a5d9
Author: William Jon McCann <jmccann redhat com>
Date: Wed Feb 16 17:03:39 2011 -0500
Don't show handles on locked and unmovable applets
https://bugzilla.gnome.org/show_bug.cgi?id=631553
gnome-panel/panel-applet-frame.c | 20 +++++++++++---------
1 files changed, 11 insertions(+), 9 deletions(-)
---
diff --git a/gnome-panel/panel-applet-frame.c b/gnome-panel/panel-applet-frame.c
index 8fb803c..a027999 100644
--- a/gnome-panel/panel-applet-frame.c
+++ b/gnome-panel/panel-applet-frame.c
@@ -88,6 +88,7 @@ struct _PanelAppletFramePrivate {
GdkRectangle handle_rect;
guint has_handle : 1;
+ guint is_locked : 1;
};
static gboolean
@@ -100,7 +101,7 @@ panel_applet_frame_draw (GtkWidget *widget,
if (GTK_WIDGET_CLASS (panel_applet_frame_parent_class)->draw)
GTK_WIDGET_CLASS (panel_applet_frame_parent_class)->draw (widget, cr);
- if (!frame->priv->has_handle)
+ if (!frame->priv->has_handle || frame->priv->is_locked)
return FALSE;
context = gtk_widget_get_style_context (widget);
@@ -153,7 +154,7 @@ panel_applet_frame_get_preferred_width(GtkWidget *widget, gint *minimal_width, g
frame = PANEL_APPLET_FRAME (widget);
bin = GTK_BIN (widget);
- if (!frame->priv->has_handle) {
+ if (!frame->priv->has_handle || frame->priv->is_locked) {
GTK_WIDGET_CLASS (panel_applet_frame_parent_class)->get_preferred_width (widget, minimal_width, natural_width);
return;
}
@@ -192,7 +193,7 @@ panel_applet_frame_get_preferred_height(GtkWidget *widget, gint *minimal_height,
frame = PANEL_APPLET_FRAME (widget);
bin = GTK_BIN (widget);
- if (!frame->priv->has_handle) {
+ if (!frame->priv->has_handle || frame->priv->is_locked) {
GTK_WIDGET_CLASS (panel_applet_frame_parent_class)->get_preferred_height (widget, minimal_height, natural_height);
return;
}
@@ -242,7 +243,7 @@ panel_applet_frame_size_allocate (GtkWidget *widget,
frame = PANEL_APPLET_FRAME (widget);
bin = GTK_BIN (widget);
- if (!frame->priv->has_handle) {
+ if (!frame->priv->has_handle || frame->priv->is_locked) {
GTK_WIDGET_CLASS (panel_applet_frame_parent_class)->size_allocate (widget,
allocation);
panel_applet_frame_update_background_size (frame,
@@ -351,7 +352,7 @@ panel_applet_frame_button_changed (GtkWidget *widget,
frame = PANEL_APPLET_FRAME (widget);
- if (!frame->priv->has_handle)
+ if (!frame->priv->has_handle || frame->priv->is_locked)
return handled;
if (event->window != gtk_widget_get_window (widget))
@@ -452,9 +453,9 @@ panel_applet_frame_sync_menu_state (PanelAppletFrame *frame)
{
PanelWidget *panel_widget;
gboolean locked_down;
- gboolean locked;
gboolean lockable;
gboolean movable;
+ gboolean locked;
gboolean removable;
panel_widget = PANEL_WIDGET (gtk_widget_get_parent (GTK_WIDGET (frame)));
@@ -465,6 +466,7 @@ panel_applet_frame_sync_menu_state (PanelAppletFrame *frame)
locked = panel_widget_get_applet_locked (panel_widget, GTK_WIDGET (frame));
locked_down = panel_lockdown_get_locked_down ();
+ frame->priv->is_locked = (locked_down || locked || !movable);
PANEL_APPLET_FRAME_GET_CLASS (frame)->sync_menu_state (frame, movable, removable, lockable, locked, locked_down);
}
@@ -499,7 +501,7 @@ panel_applet_frame_change_background (PanelAppletFrame *frame,
g_return_if_fail (PANEL_IS_WIDGET (parent));
- if (frame->priv->has_handle) {
+ if (frame->priv->has_handle && !frame->priv->is_locked) {
PanelBackground *background;
background = &PANEL_WIDGET (parent)->background;
@@ -604,7 +606,7 @@ _panel_applet_frame_update_size_hints (PanelAppletFrame *frame,
gint *size_hints,
guint n_elements)
{
- if (frame->priv->has_handle) {
+ if (frame->priv->has_handle && !frame->priv->is_locked) {
gint extra_size = HANDLE_SIZE + 1;
gint i;
@@ -633,7 +635,7 @@ _panel_applet_frame_get_background_string (PanelAppletFrame *frame,
x = allocation.x;
y = allocation.y;
- if (frame->priv->has_handle) {
+ if (frame->priv->has_handle && !frame->priv->is_locked) {
switch (frame->priv->orientation) {
case PANEL_ORIENTATION_TOP:
case PANEL_ORIENTATION_BOTTOM:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]