diff options
Diffstat (limited to 'src/ui/window.c')
-rw-r--r-- | src/ui/window.c | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/src/ui/window.c b/src/ui/window.c index bc32e479..0a97b97c 100644 --- a/src/ui/window.c +++ b/src/ui/window.c | |||
@@ -865,7 +865,7 @@ static iBool handleWindowEvent_MainWindow_(iMainWindow *d, const SDL_WindowEvent | |||
865 | if (d->base.isMinimized) { | 865 | if (d->base.isMinimized) { |
866 | return iFalse; | 866 | return iFalse; |
867 | } | 867 | } |
868 | closePopups_App(); | 868 | closePopups_App(iFalse); |
869 | checkPixelRatioChange_Window_(as_Window(d)); | 869 | checkPixelRatioChange_Window_(as_Window(d)); |
870 | const iInt2 newPos = init_I2(ev->data1, ev->data2); | 870 | const iInt2 newPos = init_I2(ev->data1, ev->data2); |
871 | if (isEqual_I2(newPos, init1_I2(-32000))) { /* magic! */ | 871 | if (isEqual_I2(newPos, init1_I2(-32000))) { /* magic! */ |
@@ -915,7 +915,7 @@ static iBool handleWindowEvent_MainWindow_(iMainWindow *d, const SDL_WindowEvent | |||
915 | // updateSize_Window_(d, iTrue); | 915 | // updateSize_Window_(d, iTrue); |
916 | return iTrue; | 916 | return iTrue; |
917 | } | 917 | } |
918 | closePopups_App(); | 918 | closePopups_App(iFalse); |
919 | if (unsnap_MainWindow_(d, NULL)) { | 919 | if (unsnap_MainWindow_(d, NULL)) { |
920 | return iTrue; | 920 | return iTrue; |
921 | } | 921 | } |
@@ -937,7 +937,7 @@ static iBool handleWindowEvent_MainWindow_(iMainWindow *d, const SDL_WindowEvent | |||
937 | return iTrue; | 937 | return iTrue; |
938 | case SDL_WINDOWEVENT_MINIMIZED: | 938 | case SDL_WINDOWEVENT_MINIMIZED: |
939 | d->base.isMinimized = iTrue; | 939 | d->base.isMinimized = iTrue; |
940 | closePopups_App(); | 940 | closePopups_App(iTrue); |
941 | return iTrue; | 941 | return iTrue; |
942 | #else /* if defined (!iPlatformDesktop) */ | 942 | #else /* if defined (!iPlatformDesktop) */ |
943 | case SDL_WINDOWEVENT_RESIZED: | 943 | case SDL_WINDOWEVENT_RESIZED: |
@@ -973,7 +973,7 @@ static iBool handleWindowEvent_MainWindow_(iMainWindow *d, const SDL_WindowEvent | |||
973 | #if !defined (iPlatformDesktop) | 973 | #if !defined (iPlatformDesktop) |
974 | setFreezeDraw_MainWindow(d, iTrue); | 974 | setFreezeDraw_MainWindow(d, iTrue); |
975 | #endif | 975 | #endif |
976 | closePopups_App(); | 976 | closePopups_App(iTrue); |
977 | return iFalse; | 977 | return iFalse; |
978 | case SDL_WINDOWEVENT_TAKE_FOCUS: | 978 | case SDL_WINDOWEVENT_TAKE_FOCUS: |
979 | SDL_SetWindowInputFocus(d->base.win); | 979 | SDL_SetWindowInputFocus(d->base.win); |
@@ -1178,7 +1178,35 @@ iLocalDef iBool isEscapeKeypress_(const SDL_Event *ev) { | |||
1178 | return (ev->type == SDL_KEYDOWN || ev->type == SDL_KEYUP) && ev->key.keysym.sym == SDLK_ESCAPE; | 1178 | return (ev->type == SDL_KEYDOWN || ev->type == SDL_KEYUP) && ev->key.keysym.sym == SDLK_ESCAPE; |
1179 | } | 1179 | } |
1180 | 1180 | ||
1181 | static uint32_t windowId_SDLEvent_(const SDL_Event *ev) { | ||
1182 | switch (ev->type) { | ||
1183 | case SDL_MOUSEBUTTONDOWN: | ||
1184 | case SDL_MOUSEBUTTONUP: | ||
1185 | return ev->button.windowID; | ||
1186 | case SDL_MOUSEMOTION: | ||
1187 | return ev->motion.windowID; | ||
1188 | case SDL_MOUSEWHEEL: | ||
1189 | return ev->wheel.windowID; | ||
1190 | case SDL_KEYDOWN: | ||
1191 | case SDL_KEYUP: | ||
1192 | return ev->key.windowID; | ||
1193 | case SDL_TEXTINPUT: | ||
1194 | return ev->text.windowID; | ||
1195 | case SDL_USEREVENT: | ||
1196 | return ev->user.windowID; | ||
1197 | default: | ||
1198 | return 0; | ||
1199 | } | ||
1200 | } | ||
1201 | |||
1181 | iBool dispatchEvent_Window(iWindow *d, const SDL_Event *ev) { | 1202 | iBool dispatchEvent_Window(iWindow *d, const SDL_Event *ev) { |
1203 | #if 0 | ||
1204 | /* For the right window? */ | ||
1205 | const uint32_t evWin = windowId_SDLEvent_(ev); | ||
1206 | if (evWin && evWin != id_Window(d)) { | ||
1207 | return iFalse; /* Meant for a different window. */ | ||
1208 | } | ||
1209 | #endif | ||
1182 | if (ev->type == SDL_MOUSEMOTION) { | 1210 | if (ev->type == SDL_MOUSEMOTION) { |
1183 | /* Hover widget may change. */ | 1211 | /* Hover widget may change. */ |
1184 | setHover_Widget(NULL); | 1212 | setHover_Widget(NULL); |