Changeset 42


Ignore:
Timestamp:
Jul 7, 2013, 11:31:03 PM (12 years ago)
Author:
Gregg Young
Message:

Attempt to fix ticket 9 using a timer. Currently it delays hiding the taskbar for 5 seconds. During that time the task menus (kill and switch) work.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/h/taskbar.h

    r33 r42  
    5555#define TSKBARUPDATEINTERVAL 35
    5656#define TSKBARBUBBLETIMERID 2
     57#define TSKHIDEDELAYTIMERID 3
     58#define TSKHIDEDELAYINTERVAL 5000
    5759
    5860#define MIS_PROCESS 0x8000
  • TabularUnified trunk/hook/lswhook.c

    r33 r42  
    146146                    return FALSE;
    147147
    148                 if ((!bOnTop
    149                      && plswData->Settings.bTaskBarTopScr ^ ptl.y == 0)
    150                     || (bOnTop && !WinIsWindowVisible(plswData->hwndMenu))) {
    151                     if (!bOnTop) {
    152                         WinQueryWindowRect(plswData->hwndTaskBar, &rcl);
    153                         cyTskBar = rcl.yTop;
    154                     }
    155                     WinSetWindowPos(plswData->hwndTaskBar,
    156                                     bOnTop ? HWND_BOTTOM : HWND_TOP, 0, 0, 0,
    157                                     0,
    158                                     SWP_ZORDER | (plswData->Settings.
    159                                                   bTaskBarAlwaysVisible ? 0
    160                                                   : (bOnTop ? SWP_HIDE :
    161                                                      SWP_SHOW)));
    162                     bOnTop ^= TRUE;
    163                 }
     148                //if ((!bOnTop
     149                //     && plswData->Settings.bTaskBarTopScr ^ ptl.y == 0)
     150                //    || (bOnTop && !WinIsWindowVisible(plswData->hwndMenu))) {
     151                if (!bOnTop) {
     152                    WinQueryWindowRect(plswData->hwndTaskBar, &rcl);
     153                    cyTskBar = rcl.yTop;
     154                }
     155                WinSetWindowPos(plswData->hwndTaskBar,
     156                                HWND_TOP, 0, 0, 0,
     157                                0,
     158                                //(plswData->Settings.bTaskBarAlwaysVisible ?
     159                                SWP_ZORDER | SWP_SHOW);
     160                bOnTop ^= TRUE;
     161                //}
    164162                DosFreeMem(plswData);
    165163            }
  • TabularUnified trunk/taskbar.c

    r38 r42  
    720720                             ptl.x,
    721721                             ptl.y +
    722                              (plswData->Settings.bTaskBarTopScr ? -sItems *
    723                               usItemHgt - 2 * usFrameWid : swp.cy),
     722                            (plswData->Settings.bTaskBarTopScr ? -sItems *
     723                             usItemHgt - 2 * usFrameWid : swp.cy),
    724724                             usHswActive,
    725725                             PU_HCONSTRAIN | PU_VCONSTRAIN | PU_MOUSEBUTTON1 |
     
    16281628#endif
    16291629
    1630             plswData->hwndTaskMenu = WinCreateMenu(HWND_DESKTOP, NULL);
     1630            plswData->hwndTaskMenu = WinCreateMenu(hwnd, NULL);
    16311631            WinSetWindowPtr(plswData->hwndTaskMenu, 0,
    16321632                            (VOID *) WinSubclassWindow(plswData->hwndTaskMenu,
     
    17611761
    17621762            hwndOldOver = hwndMouseOver;
    1763             hwndMouseOver = HWNDFROMMP(mp1);
     1763            hwndMouseOver = HWNDFROMMP(mp1);
     1764
     1765            WinStopTimer(plswData->hab, hwnd, TSKHIDEDELAYTIMERID);
    17641766
    17651767#ifdef XWORKPLACE
     
    17931795                WinStopTimer(plswData->hab, hwnd, TSKBARBUBBLETIMERID);
    17941796                ShowBubble(plswData, 0, 0, 0, -2, NULL);        //should be after WinStopTimer
    1795             }
    1796 
     1797            }
     1798#ifndef XWORKPLACE
     1799            WinStartTimer(plswData->hab, hwnd, TSKHIDEDELAYTIMERID, TSKHIDEDELAYINTERVAL);
     1800            //printf("Hidedelaytimer Visible");
     1801#endif
    17971802            break;
    17981803        }
     
    20722077//    if (msg==LSWM_ACTIVEWNDCHANGED /*&& (ULONG)mp2==WM_ACTIVATE*/) {
    20732078//#else
     2079
     2080        //printf("Hidedelaytimer Visible %i", SHORT1FROMMP(mp1));
    20742081            if (SHORT1FROMMP(mp1) == TSKBARUPDATETIMERID) {
    20752082//#endif
     
    20952102                }
    20962103                break;
    2097             }
    2098 
     2104            }
     2105#ifndef XWORKPLACE
     2106            if (SHORT1FROMMP(mp1) == TSKHIDEDELAYTIMERID) {
     2107                WinStopTimer(plswData->hab, hwnd, TSKHIDEDELAYTIMERID);
     2108                WinSetWindowPos(plswData->hwndTaskBar,
     2109                                HWND_BOTTOM, 0, 0, 0, 0,
     2110                                (plswData->Settings.bTaskBarAlwaysVisible ? SWP_ZORDER : SWP_HIDE));
     2111                //printf("Hidedelaytimer Visible %i", plswData->Settings.bTaskBarAlwaysVisible);
     2112                break;
     2113            }
     2114#endif
    20992115            if (SHORT1FROMMP(mp1) == TSKBARBUBBLETIMERID) {
    21002116                POINTL ptl;
     
    21842200                    SWP_MOVE | SWP_SIZE | (plswData->Settings.
    21852201                                           bTaskBarAlwaysVisible ? SWP_SHOW :
    2186                                            0));
     2202                                           SWP_HIDE));
    21872203
    21882204    WinPostMsg(0, WM_NULL, 0, 0);       //reset the hook
Note: See TracChangeset for help on using the changeset viewer.