r161 - trunk/src/target/OM-2007/libraries/mokoui
mickey at gta01.hmw-consulting.de
mickey at gta01.hmw-consulting.de
Tue Oct 31 02:23:53 CET 2006
Author: mickey
Date: 2006-10-31 01:23:53 +0000 (Tue, 31 Oct 2006)
New Revision: 161
Modified:
trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c
Log:
mokoui: menu forwarder (again, *sigh*)
Modified: trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c
===================================================================
--- trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c 2006-10-31 00:59:57 UTC (rev 160)
+++ trunk/src/target/OM-2007/libraries/mokoui/moko-menubox.c 2006-10-31 01:23:53 UTC (rev 161)
@@ -113,36 +113,45 @@
static gboolean cb_button_release(GtkWidget *widget, GdkEventButton *event, GtkMenu* menu)
{
g_debug( "menu open forwarder activated on widget '%s'...", gtk_widget_get_name(widget) );
+ //g_debug( "relative clicked on %f, %f", event->x, event->y );
//FIXME works only with one menu per menubar
+ GtkAllocation* my_a = &widget->allocation;
+ g_debug( "my allocate is %d, %d * %d, %d", my_a->x, my_a->y, my_a->width, my_a->height );
+
+ gint relx = event->x + my_a->x;
+ gint rely = event->y + my_a->y;
+ g_debug( "clicked on %d, %d", relx, rely );
+
GList* children = gtk_container_get_children( GTK_CONTAINER(widget) );
GtkAllocation* a = >K_WIDGET(children->data)->allocation;
- g_debug( "allocate is %d, %d * %d, %d", a->x, a->y, a->width, a->height );
+ g_debug( "menu-allocate is %d, %d * %d, %d", a->x, a->y, a->width, a->height );
- if ( event->x >= a->x && event->x <= (a->x+a->width) &&
- event->y >= a->y && event->y <= (a->y+a->height) )
+ if ( relx >= my_a->x + a->x && relx <= (my_a->x + a->x+a->width) &&
+ rely >= my_a->y + a->y && rely <= (my_a->y + a->y+a->height) )
{
g_debug( "INSIDE ITEM" );
return FALSE;
}
- else
+ if ( relx >= my_a->x && relx <= (my_a->x+my_a->width) &&
+ rely >= my_a->y && rely <= (my_a->y+my_a->height) )
{
- g_debug( "OUTSIDE ITEM" );
- }
+ g_debug( "INSIDE MENUBOX" );
- g_debug( "clicked on %f, %f", event->x, event->y );
-
- if ( !GTK_WIDGET_VISIBLE(menu) )
- {
- g_debug( "menu open forwarder: not yet open -- popping up" );
- gtk_menu_shell_select_first( GTK_MENU_SHELL(widget), FALSE );
- return TRUE;
+ if ( !GTK_WIDGET_VISIBLE(menu) )
+ {
+ g_debug( "menu open forwarder: not yet open -- popping up" );
+ gtk_menu_shell_select_first( GTK_MENU_SHELL(widget), FALSE );
+ return TRUE;
+ }
+ {
+ g_debug( "menu open forwarder: already open -- ignoring" );
+ gtk_menu_popdown( menu );
+ return FALSE;
+ }
}
- {
- g_debug( "menu open forwarder: already open -- ignoring" );
- gtk_menu_popdown( menu );
- return FALSE;
- }
+ g_debug( "Jenseits von Gut und Böse..." );
+ return TRUE;
}
static void cb_filter_menu_update( GtkMenu* menu, MokoMenuBox* self )
More information about the commitlog
mailing list