Commit 7bad33d8 authored by claes's avatar claes

OpenBSD gtk bugfixes

parent ebd071c8
...@@ -287,8 +287,10 @@ static void curvewidgetgtk_destroy( GtkObject *object) ...@@ -287,8 +287,10 @@ static void curvewidgetgtk_destroy( GtkObject *object)
curvew->destroyed = 1; curvew->destroyed = 1;
if ( curvew->scroll_timerid) if ( curvew->scroll_timerid)
g_source_remove( curvew->scroll_timerid); g_source_remove( curvew->scroll_timerid);
if ( curvew->is_navigator && curvew->curve_ctx) if ( curvew->is_navigator) {
((CurveCtx *)curvew->curve_ctx)->no_nav = 1; if ( curvew->curve_ctx && !((CurveWidgetGtk *)curvew->main_curve_widget)->destroyed)
((CurveCtx *)curvew->curve_ctx)->no_nav = 1;
}
else else
delete (GlowDrawGtk *)curvew->draw_ctx; delete (GlowDrawGtk *)curvew->draw_ctx;
} }
......
...@@ -859,20 +859,28 @@ int GlowDrawGtk::event_handler( GdkEvent event) ...@@ -859,20 +859,28 @@ int GlowDrawGtk::event_handler( GdkEvent event)
if ( (event.button.state & GDK_SHIFT_MASK) && if ( (event.button.state & GDK_SHIFT_MASK) &&
!(event.button.state & GDK_CONTROL_MASK)) { !(event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB1ClickShift, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB1ClickShift, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else if ( !(event.button.state & GDK_SHIFT_MASK) && else if ( !(event.button.state & GDK_SHIFT_MASK) &&
(event.button.state & GDK_CONTROL_MASK)) { (event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB1ClickCtrl, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB1ClickCtrl, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else if ( (event.button.state & GDK_SHIFT_MASK) && else if ( (event.button.state & GDK_SHIFT_MASK) &&
(event.button.state & GDK_CONTROL_MASK)) { (event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB1ClickShiftCtrl, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB1ClickShiftCtrl, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else { else {
sts = ctx->event_handler( glow_eEvent_MB1Click, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB1Click, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
break; break;
...@@ -880,20 +888,28 @@ int GlowDrawGtk::event_handler( GdkEvent event) ...@@ -880,20 +888,28 @@ int GlowDrawGtk::event_handler( GdkEvent event)
if ( (event.button.state & GDK_SHIFT_MASK) && if ( (event.button.state & GDK_SHIFT_MASK) &&
!(event.button.state & GDK_CONTROL_MASK)) { !(event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB2ClickShift, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB2ClickShift, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else if ( !(event.button.state & GDK_SHIFT_MASK) && else if ( !(event.button.state & GDK_SHIFT_MASK) &&
(event.button.state & GDK_CONTROL_MASK)) { (event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB2ClickCtrl, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB2ClickCtrl, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else if ( (event.button.state & GDK_SHIFT_MASK) && else if ( (event.button.state & GDK_SHIFT_MASK) &&
(event.button.state & GDK_CONTROL_MASK)) { (event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB2ClickShiftCtrl, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB2ClickShiftCtrl, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else { else {
sts = ctx->event_handler( glow_eEvent_MB2Click, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB2Click, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
break; break;
...@@ -911,6 +927,8 @@ int GlowDrawGtk::event_handler( GdkEvent event) ...@@ -911,6 +927,8 @@ int GlowDrawGtk::event_handler( GdkEvent event)
else else
#endif #endif
sts = ctx->event_handler( glow_eEvent_MB3Click, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB3Click, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
break; break;
} }
...@@ -919,6 +937,8 @@ int GlowDrawGtk::event_handler( GdkEvent event) ...@@ -919,6 +937,8 @@ int GlowDrawGtk::event_handler( GdkEvent event)
/* Button release */ /* Button release */
// cout << "Button release detected" << endl; // cout << "Button release detected" << endl;
sts = ctx->event_handler( glow_eEvent_ButtonRelease, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_ButtonRelease, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
} }
} }
else { else {
...@@ -945,20 +965,28 @@ int GlowDrawGtk::event_handler( GdkEvent event) ...@@ -945,20 +965,28 @@ int GlowDrawGtk::event_handler( GdkEvent event)
if ( (event.button.state & GDK_SHIFT_MASK) && if ( (event.button.state & GDK_SHIFT_MASK) &&
!(event.button.state & GDK_CONTROL_MASK)) { !(event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB1DoubleClickShift, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB1DoubleClickShift, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else if ( !(event.button.state & GDK_SHIFT_MASK) && else if ( !(event.button.state & GDK_SHIFT_MASK) &&
(event.button.state & GDK_CONTROL_MASK)) { (event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB1DoubleClickCtrl, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB1DoubleClickCtrl, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else if ( (event.button.state & GDK_SHIFT_MASK) && else if ( (event.button.state & GDK_SHIFT_MASK) &&
(event.button.state & GDK_CONTROL_MASK)) { (event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB1DoubleClickShiftCtrl, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB1DoubleClickShiftCtrl, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else { else {
sts = ctx->event_handler( glow_eEvent_MB1DoubleClick, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB1DoubleClick, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
break; break;
...@@ -966,20 +994,28 @@ int GlowDrawGtk::event_handler( GdkEvent event) ...@@ -966,20 +994,28 @@ int GlowDrawGtk::event_handler( GdkEvent event)
if ( (event.button.state & GDK_SHIFT_MASK) && if ( (event.button.state & GDK_SHIFT_MASK) &&
!(event.button.state & GDK_CONTROL_MASK)) { !(event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB2DoubleClickShift, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB2DoubleClickShift, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else if ( !(event.button.state & GDK_SHIFT_MASK) && else if ( !(event.button.state & GDK_SHIFT_MASK) &&
(event.button.state & GDK_CONTROL_MASK)) { (event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB2DoubleClickCtrl, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB2DoubleClickCtrl, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else if ( (event.button.state & GDK_SHIFT_MASK) && else if ( (event.button.state & GDK_SHIFT_MASK) &&
(event.button.state & GDK_CONTROL_MASK)) { (event.button.state & GDK_CONTROL_MASK)) {
sts = ctx->event_handler( glow_eEvent_MB2DoubleClickShiftCtrl, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB2DoubleClickShiftCtrl, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
else { else {
sts = ctx->event_handler( glow_eEvent_MB2DoubleClick, (int)event.button.x, (int)event.button.y, 0, 0); sts = ctx->event_handler( glow_eEvent_MB2DoubleClick, (int)event.button.x, (int)event.button.y, 0, 0);
if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return 1;
click_sensitivity = 0; click_sensitivity = 0;
} }
break; break;
......
...@@ -291,8 +291,10 @@ static void growwidgetgtk_destroy( GtkObject *object) ...@@ -291,8 +291,10 @@ static void growwidgetgtk_destroy( GtkObject *object)
grow->destroyed = 1; grow->destroyed = 1;
if ( grow->scroll_timerid) if ( grow->scroll_timerid)
g_source_remove( grow->scroll_timerid); g_source_remove( grow->scroll_timerid);
if ( grow->is_navigator && grow->grow_ctx) if ( grow->is_navigator) {
((GrowCtx *)grow->grow_ctx)->no_nav = 1; if ( grow->grow_ctx && !((GrowWidgetGtk *)grow->main_grow_widget)->destroyed)
((GrowCtx *)grow->grow_ctx)->no_nav = 1;
}
else else
delete (GlowDrawGtk *)grow->draw_ctx; delete (GlowDrawGtk *)grow->draw_ctx;
} }
......
...@@ -266,7 +266,9 @@ int GrowCtx::event_handler( glow_eEvent event, int x, int y, int w, int h) ...@@ -266,7 +266,9 @@ int GrowCtx::event_handler( glow_eEvent event, int x, int y, int w, int h)
case glow_eEvent_MB1Up: case glow_eEvent_MB1Up:
case glow_eEvent_MB1Click: case glow_eEvent_MB1Click:
sts = a[a.a_size-1]->event_handler( &mw, event, x, y, fx, fy); sts = a[a.a_size-1]->event_handler( &mw, event, x, y, fx, fy);
if ( sts) if ( sts == GLOW__TERMINATED || sts == GLOW__DESTROYED)
return sts;
else if ( sts)
return 1; return 1;
break; break;
default: ; default: ;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment