pidgin/gtkstatusbox.c

branch
cpw.qulogic.gtk3-required
changeset 33183
db78e70b412c
parent 33181
0d5d682c57f7
child 33184
e27e4a465dba
equal deleted inserted replaced
33182:a7f503e12c8b 33183:db78e70b412c
1378 } 1378 }
1379 } 1379 }
1380 1380
1381 static gboolean 1381 static gboolean
1382 popup_grab_on_window (GdkWindow *window, 1382 popup_grab_on_window (GdkWindow *window,
1383 guint32 activate_time, 1383 guint32 activate_time)
1384 gboolean grab_keyboard)
1385 { 1384 {
1386 if ((gdk_pointer_grab (window, TRUE, 1385 if ((gdk_pointer_grab (window, TRUE,
1387 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | 1386 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
1388 GDK_POINTER_MOTION_MASK, 1387 GDK_POINTER_MOTION_MASK,
1389 NULL, NULL, activate_time) == 0)) 1388 NULL, NULL, activate_time) == 0))
1390 { 1389 {
1391 if (!grab_keyboard || gdk_keyboard_grab (window, TRUE, activate_time) == 0) 1390 if (gdk_keyboard_grab (window, TRUE, activate_time) == 0)
1392 return TRUE; 1391 return TRUE;
1393 else { 1392 else {
1394 gdk_display_pointer_ungrab (gdk_window_get_display (window), activate_time); 1393 gdk_display_pointer_ungrab (gdk_window_get_display (window), activate_time);
1395 return FALSE; 1394 return FALSE;
1396 } 1395 }
1409 gtk_widget_set_size_request (box->popup_window, width, height); 1408 gtk_widget_set_size_request (box->popup_window, width, height);
1410 gtk_window_move (GTK_WINDOW (box->popup_window), x, y); 1409 gtk_window_move (GTK_WINDOW (box->popup_window), x, y);
1411 gtk_widget_show(box->popup_window); 1410 gtk_widget_show(box->popup_window);
1412 gtk_widget_grab_focus (box->tree_view); 1411 gtk_widget_grab_focus (box->tree_view);
1413 if (!popup_grab_on_window (gtk_widget_get_window(box->popup_window), 1412 if (!popup_grab_on_window (gtk_widget_get_window(box->popup_window),
1414 GDK_CURRENT_TIME, TRUE)) { 1413 GDK_CURRENT_TIME)) {
1415 gtk_widget_hide (box->popup_window); 1414 gtk_widget_hide (box->popup_window);
1416 return; 1415 return;
1417 } 1416 }
1418 gtk_grab_add (box->popup_window); 1417 gtk_grab_add (box->popup_window);
1419 /*box->popup_in_progress = TRUE;*/ 1418 /*box->popup_in_progress = TRUE;*/
1433 gtk_widget_hide(box->popup_window); 1432 gtk_widget_hide(box->popup_window);
1434 box->popup_in_progress = FALSE; 1433 box->popup_in_progress = FALSE;
1435 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (box->toggle_button), 1434 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (box->toggle_button),
1436 FALSE); 1435 FALSE);
1437 gtk_grab_remove (box->popup_window); 1436 gtk_grab_remove (box->popup_window);
1437 gdk_pointer_ungrab(GDK_CURRENT_TIME);
1438 gdk_keyboard_ungrab(GDK_CURRENT_TIME);
1438 } 1439 }
1439 1440
1440 static gboolean 1441 static gboolean
1441 toggle_key_press_cb(GtkWidget *widget, GdkEventKey *event, PidginStatusBox *box) 1442 toggle_key_press_cb(GtkWidget *widget, GdkEventKey *event, PidginStatusBox *box)
1442 { 1443 {

mercurial