CanvasWidgets have a grab() api. fixes: sometimes the wrong region is dragged
This commit is contained in:
parent
5cebd64924
commit
4e1606e0f0
@ -692,12 +692,11 @@ TriggerEntry::event (GdkEvent* ev)
|
|||||||
|
|
||||||
switch (ev->type) {
|
switch (ev->type) {
|
||||||
case GDK_2BUTTON_PRESS:
|
case GDK_2BUTTON_PRESS:
|
||||||
gdk_pointer_ungrab (GDK_CURRENT_TIME);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_BUTTON_RELEASE:
|
case GDK_BUTTON_RELEASE:
|
||||||
gdk_pointer_ungrab (GDK_CURRENT_TIME);
|
if(_grabbed) {
|
||||||
break;
|
ungrab();
|
||||||
|
_grabbed = false;
|
||||||
|
} break;
|
||||||
|
|
||||||
case GDK_BUTTON_PRESS:
|
case GDK_BUTTON_PRESS:
|
||||||
if (!_drag_active) {
|
if (!_drag_active) {
|
||||||
@ -705,7 +704,8 @@ TriggerEntry::event (GdkEvent* ev)
|
|||||||
if (bev->button == 1) {
|
if (bev->button == 1) {
|
||||||
_drag_start_x = bev->x;
|
_drag_start_x = bev->x;
|
||||||
_drag_start_y = bev->y;
|
_drag_start_y = bev->y;
|
||||||
gdk_pointer_grab (bev->window, false, GdkEventMask (Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK), NULL, NULL, bev->time);
|
_grabbed = true;
|
||||||
|
grab();
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
_drag_start_x = -1;
|
_drag_start_x = -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user