alt transport keys, snap editing, grab focus, inv hilight clr, subtitle fix
[goodguy/history.git] / cinelerra-5.1 / guicast / bcwindowbase.C
index 5909aced83e841ac9b33925f1b2c442b48ee6be9..ec7507683bf04eef3136f014b3e88f169b4564b1 100644 (file)
@@ -296,6 +296,7 @@ int BC_WindowBase::initialize()
        active_menubar = 0;
        active_popup_menu = 0;
        active_subwindow = 0;
        active_menubar = 0;
        active_popup_menu = 0;
        active_subwindow = 0;
+       cursor_entered = 0;
        pixmap = 0;
        bg_pixmap = 0;
        _7segment_pixmaps = 0;
        pixmap = 0;
        bg_pixmap = 0;
        _7segment_pixmaps = 0;
@@ -1325,11 +1326,20 @@ locking_message = event->xclient.message_type;
                break;
 
        case LeaveNotify:
                break;
 
        case LeaveNotify:
+               if( cursor_entered && event->xcrossing.window == win ) {
+                       cursor_entered = 0;
+               }
                event_win = event->xany.window;
                dispatch_cursor_leave();
                break;
 
        case EnterNotify:
                event_win = event->xany.window;
                dispatch_cursor_leave();
                break;
 
        case EnterNotify:
+               if( !cursor_entered && event->xcrossing.window == win ) {
+                       if( !event->xcrossing.focus && get_resources()->grab_input_focus ) {
+                               XSetInputFocus(display, win, RevertToParent, CurrentTime);
+                       }
+                       cursor_entered = 1;
+               }
                event_win = event->xany.window;
                cursor_x = event->xcrossing.x;
                cursor_y = event->xcrossing.y;
                event_win = event->xany.window;
                cursor_x = event->xcrossing.x;
                cursor_y = event->xcrossing.y;