Project

General

Profile

1811q_20150911_2.txt

Sergey Ivanovskiy, 09/11/2015 03:34 PM

Download (5.19 KB)

 
1
=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js'
2
--- src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js	2015-09-10 17:38:10 +0000
3
+++ src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js	2015-09-11 19:12:54 +0000
4
@@ -919,6 +919,7 @@
5
    Window.prototype.moveToTop = function()
6
    {
7
       moveZOrderEntryToTop(this.id);
8
+      taskBar.setTaskIconActive(this.id, true);
9
    };
10
    
11
    /**
12

    
13
=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.virtual_desktop.js'
14
--- src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.virtual_desktop.js	2015-09-11 12:06:53 +0000
15
+++ src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.virtual_desktop.js	2015-09-11 19:09:26 +0000
16
@@ -233,6 +233,9 @@
17
       /** The task bar dragged panel */
18
       var dragged;
19
       
20
+      /** active task icon index */
21
+      var activeTaskIconIndex;
22
+      
23
       var canvas = document.createElement('canvas');
24
       canvas.className="canvas";
25
       canvas.style["height"] = "100%";
26
@@ -580,8 +583,6 @@
27
             taskIcon = new TaskIcon(windowId, TASK_ICON_WIDTH, TASK_ICON_HEIGHT, foreground,
28
                   "", null, 0, 0);
29
             taskIcons.push(taskIcon);
30
-            // By default the task is active. Only one task can be active.
31
-            deactivateHead();
32
          }
33
          return taskIcon;
34
       };
35
@@ -655,22 +656,26 @@
36
             widgetsToRemove.splice(index, 1);
37
             widgetsToAdd.push(taskIcon);
38
             //if the task icon becomes visible it should be active
39
-            taskIcon.setActive(visible);
40
-         }
41
+            updateTaskBar(taskIcon, visible)
42
+            return taskIcon;
43
+         }
44
+         // task icon is already visible
45
+         taskIcon = findWidget(windowId, taskIcons);
46
+         if (taskIcon)
47
+         {
48
+            updateTaskBar(taskIcon, visible);
49
+            return taskIcon;
50
+         }
51
+         // task icon is already hidden
52
+         taskIcon = findWidget(windowId, hiddenTaskIcons);
53
+         if (taskIcon)
54
+         {
55
+            updateTaskBar(taskIcon, visible);
56
+         }
57
+         
58
          return taskIcon;
59
       };
60
       
61
-      /**
62
-       * Deactivate the head tasks.
63
-       */
64
-      function deactivateHead()
65
-      {
66
-         for (var i = 0; i < taskIcons.length - 1; i++)
67
-         {
68
-            taskIcons[i].setActive(false);
69
-         }
70
-      }
71
-
72
       this.setIconForTask = setIconForTask;
73
 
74
       /**
75
@@ -724,6 +729,63 @@
76
          return taskIcon;
77
       };
78
 
79
+      this.setTaskIconActive = setTaskIconActive;
80
+      
81
+      /**
82
+       * Sets the active state for the task that represents the target window.
83
+       * 
84
+       * @param    {Number} windowId
85
+       *           The target window id.
86
+       * @param    {Boolean} active
87
+       *           The window state.
88
+       * 
89
+       * @return   {TaskIcon}
90
+       *           The task that represents the target window.
91
+       */
92
+      function setTaskIconActive(windowId, active)
93
+      {
94
+         var taskIcon = findTaskIcon(windowId);
95
+         if (taskIcon)
96
+         {
97
+            updateTaskBar(taskIcon, active);
98
+         }
99
+         return taskIcon;
100
+      };
101
+
102
+      /**
103
+       * Updates the given task icon and the active task icon index, then draws the task bar.
104
+       * 
105
+       * @param    {TaskIcon} taskIcon
106
+       *           The task icon that is going to change its state
107
+       * @param    {Boolean} active
108
+       *           The new active state
109
+       */
110
+      function updateTaskBar(taskIcon, active)
111
+      {
112
+         taskIcon.setActive(active);
113
+         if (activeTaskIconIndex === taskIcon.index)
114
+         {
115
+            if (!active)
116
+            {
117
+               activeTaskIconIndex = undefined;
118
+            }
119
+         }
120
+         else
121
+         {
122
+            //new active window
123
+            if (active)
124
+            {
125
+               if (activeTaskIconIndex !== undefined)
126
+               {
127
+                  var oldActiveTaskIcon = taskIcons[activeTaskIconIndex];
128
+                  oldActiveTaskIcon.setActive(false);
129
+               }
130
+               activeTaskIconIndex = taskIcon.index;
131
+            }
132
+         }
133
+         draw();
134
+      }
135
+
136
       this.setFont = setFont;
137
       
138
       /**
139
@@ -816,7 +878,7 @@
140
          {
141
             return;
142
          }
143
-         taskIcon.setActive(false);
144
+         updateTaskBar(taskIcon, false);
145
          taskIcon.draw();
146
       };
147
 
148
@@ -833,7 +895,7 @@
149
          {
150
             return;
151
          }
152
-         taskIcon.setActive(true);
153
+         updateTaskBar(taskIcon, true);
154
          taskIcon.draw();
155
       };
156
 
157
@@ -949,7 +1011,7 @@
158
             var taskIcon = taskIcons[i];
159
             if (taskIcon.testMousePointerInside(event) && !taskIcon.isActive())
160
             {
161
-               taskIcon.setActive(true);
162
+               updateTaskBar(taskIcon, true);
163
                if (taskIconOnClickCallback)
164
                {
165
                   taskIconOnClickCallback(taskIcon.id);
166
@@ -1069,7 +1131,7 @@
167
          this.height = h;
168
          this.color  = c;
169
          var that = this;
170
-         var active = true;
171
+         var active = false;
172
          this.x = 0;
173
          this.y = 0;
174
          /**The internal index, if the task icon is on the task bar, it is set
175