Mercurial > dwindows
comparison gtk/dw.c @ 39:3aa9ef0b3996
Added focus fixes and set-focus fixes on all three platforms.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 19 Oct 2001 14:16:50 +0000 |
parents | 360bc6a5f1c9 |
children | 88c9c7410c22 |
comparison
equal
deleted
inserted
replaced
38:538db2a48bac | 39:3aa9ef0b3996 |
---|---|
305 } | 305 } |
306 | 306 |
307 void _item_select_event(GtkWidget *widget, GtkWidget *child, gpointer data) | 307 void _item_select_event(GtkWidget *widget, GtkWidget *child, gpointer data) |
308 { | 308 { |
309 SignalHandler *work = (SignalHandler *)data; | 309 SignalHandler *work = (SignalHandler *)data; |
310 static int _dw_recursing = 0; | |
311 | |
312 if(_dw_recursing) | |
313 return; | |
310 | 314 |
311 if(work) | 315 if(work) |
312 { | 316 { |
313 int (*selectfunc)(HWND, int, void *) = work->func; | 317 int (*selectfunc)(HWND, int, void *) = work->func; |
314 GList *list; | 318 GList *list; |
315 int item = 0; | 319 int item = 0; |
320 | |
321 _dw_recursing = 1; | |
316 | 322 |
317 if(GTK_IS_COMBO(work->window)) | 323 if(GTK_IS_COMBO(work->window)) |
318 list = GTK_LIST(GTK_COMBO(work->window)->list)->children; | 324 list = GTK_LIST(GTK_COMBO(work->window)->list)->children; |
319 else if(GTK_IS_LIST(widget)) | 325 else if(GTK_IS_LIST(widget)) |
320 list = GTK_LIST(widget)->children; | 326 list = GTK_LIST(widget)->children; |
330 break; | 336 break; |
331 } | 337 } |
332 item++; | 338 item++; |
333 list = list->next; | 339 list = list->next; |
334 } | 340 } |
341 _dw_recursing = 0; | |
335 } | 342 } |
336 } | 343 } |
337 | 344 |
338 void _container_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data) | 345 void _container_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data) |
339 { | 346 { |
4871 thisname = "select_child"; | 4878 thisname = "select_child"; |
4872 } | 4879 } |
4873 else if(strcmp(signame, "set-focus") == 0) | 4880 else if(strcmp(signame, "set-focus") == 0) |
4874 { | 4881 { |
4875 thisname = "focus-in-event"; | 4882 thisname = "focus-in-event"; |
4883 if(GTK_IS_COMBO(thiswindow)) | |
4884 thiswindow = GTK_COMBO(thiswindow)->entry; | |
4876 } | 4885 } |
4877 else if(GTK_IS_TREE(thiswindow) && strcmp(signame, "tree-select") == 0) | 4886 else if(GTK_IS_TREE(thiswindow) && strcmp(signame, "tree-select") == 0) |
4878 { | 4887 { |
4879 if(thisfunc) | 4888 if(thisfunc) |
4880 { | 4889 { |