X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcwindowbase.C;h=ec7507683bf04eef3136f014b3e88f169b4564b1;hp=5909aced83e841ac9b33925f1b2c442b48ee6be9;hb=b5c58822be78c8820692c916e296a2230bb2b9e2;hpb=5c3e5d5e76c29b49708b4e42d194402150b508ab diff --git a/cinelerra-5.1/guicast/bcwindowbase.C b/cinelerra-5.1/guicast/bcwindowbase.C index 5909aced..ec750768 100644 --- a/cinelerra-5.1/guicast/bcwindowbase.C +++ b/cinelerra-5.1/guicast/bcwindowbase.C @@ -296,6 +296,7 @@ int BC_WindowBase::initialize() active_menubar = 0; active_popup_menu = 0; active_subwindow = 0; + cursor_entered = 0; pixmap = 0; bg_pixmap = 0; _7segment_pixmaps = 0; @@ -1325,11 +1326,20 @@ locking_message = event->xclient.message_type; break; case LeaveNotify: + if( cursor_entered && event->xcrossing.window == win ) { + cursor_entered = 0; + } 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;