Giter VIP home page Giter VIP logo

windowwalker's People

Contributors

betsegaw avatar crutkas avatar mjrichmond avatar segundovolante avatar stsegaye2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

windowwalker's Issues

Use a JSON serializer to serialize shortcut data

This will allow us to use the same method to write out various settings in the future.

Proposed format is:

{
    "ver":"v1",
    "shortcuts",{
        "v":"devenv",
        "i":"iexplore.exe"}
}

@mjrichmond any thoughts? I can do the implementation, which should be quite simple but I wanted to see if you had any input :)

Height of window does not account for location of window

When populating the windows with items, we look to make sure that it doesn't extend beyond the bounds of the screen.

        if (this.Height > screen.Bounds.Height)
        {
            this.Height = screen.Bounds.Height;
            this.resultsListBox.MaxHeight = screen.Bounds.Height - 30;
        }

However this does not account for the fact that the window might have been moved, which was not the case when this method was written.

Suggested update would be to take into account the current location of the window.

Also, must account for moving of the window.

Search is broken for more than 1 letter

Search does not match anything after the first letter (see screenshots for example) starting from commit 64d6a32

For one letter you get:
screenshot_windowwalker_searchbroken_1_letter

When you add 2 you get:
screenshot_windowwalker_searchbroken_2_letters

@mjrichmond I hadn't noticed that commit. I am reverting it for the following two reasons,

  1. It is more useful to have score based on overall distribution of letters.(eg. for a search of "moo", "mxxoxxo" should score higher than "mxxxxxxoxxxxxxxxo")
  2. The original one has been "overused" by me so a bunch of corner cases were discovered and accounted for. Even though there are tests bundled along with the old one, there is not enough coverage to verify the new one thoroughly (as shown by the bug). I should have invested a little bit more time in creating more tests but I had gotten lazy lol :)

32 Bit support

Title says it all. The current release is built targeting x64, and the project does too.

Rebuilding the project targeting Any CPU on a 32bit machine results in undebuggable code:

A call to PInvoke function 'Window Walker!WindowWalker.Components.InteropAndHelpers::DwmSetWindowAttribute' has unbalanced the stack.

Highlighting occurs to both the process name and the window title

Whenever we are displaying matching window lists, we should only highlight either the title OR the process name (whichever one is a better match).

Here is an example of the wrong highlighting. In the below picture, only the title a or the process name a should have been highlighted (based on highest score and since these have the same score for both the title and the process name, we should pick the title in this particular example).

image

Enable a commanding UX Flow

Idea is to enable a user to execute different types of command from within the app using the consistent method of starting an entry in the search box using :.

Allow Moving of the search window

Right now the search window is kind of stuck at what is (hopefully) the middle top of the screen. It would be super cool and super easy to allow people to move their window + remember where there window was set to appear the next time they open the app.

@mjrichmond I am going to look into the way you save the settings and see if I can tag along on that code to save this settings as well.

Slow initial populate

If you type the fast enough, the focus will be captured by whatever window you were on when you invoked window walker

Write to shortcuts to file more frequently

We should write to file more frequently since we don't expect people to be quitting the app unless they are rebooting, in which case it is more likely that they will forget to shut it down properly.

Random Crash

Had a random crash In UpdateHighlighting with substring(blah blah) having index out of range

Optimize loading of windows by not reloading window list eachtime

Every time the window is invoked, we reload the list of apps from scratch. This means that most of the time, people have to wait to see everything load. Instead of doing that we can follow the following steps to optimize this to both decrease the number of loads we do and just general perceived perf.

  • Don't clear window list until you have the first window loaded
  • Merge each individual incoming result into current list

API For Browsing through a windows menu

Probably only possible if the window uses a standard windows API for creating the menus.

  • Find an API to browse through a windows menu's using the handle
  • Proof of concept code that browses and clicks on the new file option in notepad

Can't switch to window by clicking with a mouse

Bug repro steps

  1. Launch app and type a letter that gets some windows to show up in the results list
  2. Click on one of the results

Expected: We switch to the window we clicked on and Window Walker dismisses.

Actual: we don't switch to the window and Window Walker does not dismiss.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.