[Xfce4-commits] r24321 - squeeze/trunk/src

Peter de Ridder peter at xfce.org
Mon Jan 8 20:55:00 CET 2007


Author: peter
Date: 2007-01-08 19:55:00 +0000 (Mon, 08 Jan 2007)
New Revision: 24321

Modified:
   squeeze/trunk/src/button_drag_box.c
   squeeze/trunk/src/button_drag_box.h
Log:
lock filename in place


Modified: squeeze/trunk/src/button_drag_box.c
===================================================================
--- squeeze/trunk/src/button_drag_box.c	2007-01-08 19:52:42 UTC (rev 24320)
+++ squeeze/trunk/src/button_drag_box.c	2007-01-08 19:55:00 UTC (rev 24321)
@@ -28,6 +28,9 @@
 #define SQ_INDICATOR_SIZE 9
 
 static void
+sq_button_drag_box_lock_buttons(SQButtonDragBox *box, guint buttons);
+
+static void
 sq_button_drag_box_add_fixed_button(SQButtonDragBox *box, const gchar *label);
 
 static void
@@ -72,6 +75,8 @@
 {
 	GtkWidget *frame;
 
+	box->locked_buttons = 0;
+
 	box->visible_box = gtk_hbox_new(FALSE, 0);
 	box->hidden_box = gtk_hbox_new(FALSE, 0);
 
@@ -114,6 +119,8 @@
 	sq_button_drag_box_add_button(SQ_BUTTON_DRAG_BOX(box), "Size", TRUE);
 	sq_button_drag_box_add_button(SQ_BUTTON_DRAG_BOX(box), "Time", TRUE);
 
+	sq_button_drag_box_lock_buttons(SQ_BUTTON_DRAG_BOX(box), 1);
+
 	return box;
 }
 
@@ -145,6 +152,12 @@
 	g_signal_connect(G_OBJECT(button), "focus", G_CALLBACK(cb_signal_blocker), NULL);
 }
 
+static void
+sq_button_drag_box_lock_buttons(SQButtonDragBox *box, guint buttons)
+{
+	box->locked_buttons = buttons;
+}
+
 static GdkPixbuf*
 sq_create_icon_from_widget(GtkWidget *widget)
 {
@@ -250,6 +263,7 @@
 	gtk_box_pack_start(GTK_BOX(box->visible_box), source, FALSE, FALSE, 0);
 	gtk_widget_unref(source);
 
+	guint button = 0;
 	gint xoffset = box->visible_box->allocation.x;
 	GtkWidget *item;
 
@@ -263,7 +277,8 @@
 
 		if(GTK_WIDGET_VISIBLE(item))
 		{
-			if(x < (item->allocation.width/2 + item->allocation.x - xoffset))
+			button++;
+			if((box->locked_buttons < button) && (x < (item->allocation.width/2 + item->allocation.x - xoffset)))
 			{
 				break;
 			}
@@ -282,6 +297,7 @@
 {
 	SQButtonDragBox *box = SQ_BUTTON_DRAG_BOX(user_data);
 
+	guint button = 0;
 	gint ix, iy;
 	gint xoffset = box->visible_box->allocation.x;
 	GtkWidget *item;
@@ -296,7 +312,8 @@
 
 		if(GTK_WIDGET_VISIBLE(item))
 		{
-			if(x < (item->allocation.width/2 + item->allocation.x - xoffset))
+			button++;
+			if((box->locked_buttons < button) && (x < (item->allocation.width/2 + item->allocation.x - xoffset)))
 			{
 				ix = item->allocation.x;
 				break;

Modified: squeeze/trunk/src/button_drag_box.h
===================================================================
--- squeeze/trunk/src/button_drag_box.h	2007-01-08 19:52:42 UTC (rev 24320)
+++ squeeze/trunk/src/button_drag_box.h	2007-01-08 19:55:00 UTC (rev 24321)
@@ -49,6 +49,7 @@
 	GtkWidget *hidden_box;
 	GtkTargetEntry entry;
 	GdkWindow *indicator;
+	guint locked_buttons;
 };
 
 typedef struct _SQButtonDragBoxClass SQButtonDragBoxClass;



More information about the Xfce4-commits mailing list