Project

General

Profile

2956_window_events_4.txt

Sergey Ivanovskiy, 02/02/2016 02:20 PM

Download (1.94 KB)

 
1
=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/web/GuiWebDriver.java'
2
--- src/com/goldencode/p2j/ui/client/gui/driver/web/GuiWebDriver.java	2016-02-02 09:55:41 +0000
3
+++ src/com/goldencode/p2j/ui/client/gui/driver/web/GuiWebDriver.java	2016-02-02 19:04:59 +0000
4
@@ -902,12 +902,12 @@
5
       // it become important when overlay window is on screen
6
       // in this case double activation will incorrectly dismiss overaly
7
       TopLevelWindow<?> currActiveWindow = WindowManager.getActiveWindow();
8
-      
9
+      TopLevelWindow<?> currFocusWindow = WindowManager.getFocusWindow();
10
       // check if overlay window exists
11
       OverlayWindow ow = WindowManager.findOverlayWindow();
12
       
13
       // we do not need to activate already active window is there is no overlay on the screen
14
-      if (window == currActiveWindow && ow == null && state)
15
+      if (state && window == currActiveWindow && ow == null && currFocusWindow == currActiveWindow)
16
       {
17
          return;
18
       }
19
@@ -917,7 +917,14 @@
20
       {
21
          ThinClient.getInstance().postOSEvent(new WindowActivated(ow, false, false));
22
       }
23
-      
24
+      if (window == currFocusWindow && !state)
25
+      {
26
+         WindowManager.removeFocusWindow();
27
+      }
28
+      if (state)
29
+      {
30
+         WindowManager.setFocusWindow(window);
31
+      }
32
       ThinClient.getInstance().postOSEvent(new WindowActivated(window, state, false));
33
    }
34
 
35

    
36
=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js'
37
--- src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js	2016-02-02 09:55:41 +0000
38
+++ src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js	2016-02-02 17:01:50 +0000
39
@@ -2360,7 +2360,7 @@
40
    function sendWindowStateActive(windowId)
41
    {
42
       var topWindowId = p2j.screen.topWindowId();
43
-      if (topWindowId)
44
+      if (topWindowId && topWindowId !== windowId)
45
       {
46
          p2j.socket.sendWindowActive(topWindowId, false);
47
       }
48