From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 93122 invoked by alias); 2 Aug 2016 09:18:03 -0000 Mailing-List: contact cygwin-apps-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-apps-cvs-owner@sourceware.org Received: (qmail 93100 invoked by uid 9078); 2 Aug 2016 09:18:02 -0000 Date: Tue, 02 Aug 2016 09:18:00 -0000 Message-ID: <20160802091802.93071.qmail@sourceware.org> From: corinna@sourceware.org To: cygwin-apps-cvs@sourceware.org Subject: [setup - the official Cygwin setup program used to install Cygwin and keep it up to date] branch master, updated. release_2.874-6-g1c1913d X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 7a37c290f53a7ae6271b921baa4ba423348ef92a X-Git-Newrev: 1c1913d10e0af982006cfef9f560884a3a52dedf X-SW-Source: 2016-q3/txt/msg00011.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=1c1913d10e0af982006cfef9f560884a3a52dedf commit 1c1913d10e0af982006cfef9f560884a3a52dedf Author: Ronald Ramos Date: Mon Aug 1 23:17:22 2016 -0400 (Usability improvement) Implement half-second wait for user to finish typing before searching packages commit 357c1e7576586349efb8514dc9d8d03950e225ee Author: Ronald Ramos Date: Mon Aug 1 23:05:44 2016 -0400 * proppage.h (PropertyPage) New member OnTimerMessage (delegates similarly to OnMouseWheel) * proppage.cc (DialogProc) Added handling of WM_TIMER * choose.h (ChooserPage) (OnTimerMessage) New function prototype (timer_id) New member variable Added DEFINE-ed default values for timer_id and search timer delay Reorganized private members for consistency * choose.cc (constructor) Initialize timer_id (OnMessageCmd) Replaced search-refresh with a SetTimer (OnSearchTimer) New; contains search-refresh removed from OnMessageCmd https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=80abe8995e0afa81fca807eac5aa01a16d9347e4 commit 80abe8995e0afa81fca807eac5aa01a16d9347e4 Author: Ronald Ramos Date: Mon Aug 1 20:24:34 2016 -0400 README: Fixed mailing list address (typo) commit 5d7c3beee3317926eb3256dd7a1bed8f55a6952b Author: Ronald Ramos Date: Mon Aug 1 20:21:47 2016 -0400 * README: Fixed which mailing list this app belongs to Diff: --- README | 2 +- choose.cc | 31 +++++++++++++++++++++++-------- choose.h | 14 ++++++++++++-- proppage.cc | 12 +++++++++++- proppage.h | 2 ++ 5 files changed, 49 insertions(+), 12 deletions(-) diff --git a/README b/README index 9ad78b6..a05b18f 100644 --- a/README +++ b/README @@ -70,7 +70,7 @@ Follow the general directions given in the Cygwin contributions document: The appropriate mailing list for this project is cygwin-apps (rather than cygwin-patches). Thus, the appropriate final command would be: - $ git send-email --to="cygwin-patches@cygwin.com" + $ git send-email --to="cygwin-apps@cygwin.com" WISHLIST: diff --git a/choose.cc b/choose.cc index 42d8b74..106ac81 100644 --- a/choose.cc +++ b/choose.cc @@ -92,7 +92,8 @@ static ControlAdjuster::ControlInfo ChooserControlsInfo[] = { }; ChooserPage::ChooserPage () : - cmd_show_set (false), saved_geom (false), saw_geom_change (false) + cmd_show_set (false), saved_geom (false), saw_geom_change (false), + timer_id (DEFAULT_TIMER_ID) { sizeProcessor.AddControlInfo (ChooserControlsInfo); @@ -382,9 +383,7 @@ ChooserPage::OnMessageCmd (int id, HWND hwndctl, UINT code) { if (code == EN_CHANGE && id == IDC_CHOOSE_SEARCH_EDIT) { - std::string value (egetString (GetHWND (), IDC_CHOOSE_SEARCH_EDIT)); - chooser->SetPackageFilter (value); - chooser->refresh (); + SetTimer(GetHWND (), timer_id, SEARCH_TIMER_DELAY, (TIMERPROC) NULL); return true; } else if (code != BN_CLICKED && code != EN_CHANGE) @@ -397,10 +396,10 @@ ChooserPage::OnMessageCmd (int id, HWND hwndctl, UINT code) { case IDC_CHOOSE_CLEAR_SEARCH: { - std::string value; - eset (GetHWND (), IDC_CHOOSE_SEARCH_EDIT, value); - chooser->SetPackageFilter (value); - chooser->refresh (); + std::string value; + eset (GetHWND (), IDC_CHOOSE_SEARCH_EDIT, value); + chooser->SetPackageFilter (value); + chooser->refresh (); } break; @@ -444,3 +443,19 @@ ChooserPage::OnMouseWheel (UINT message, WPARAM wParam, LPARAM lParam) { return chooser->WindowProc (message, wParam, lParam); } + +INT_PTR CALLBACK +ChooserPage::OnTimerMessage (UINT message, WPARAM wParam, LPARAM lparam) +{ + if (wParam == timer_id) + { + std::string value (egetString (GetHWND (), IDC_CHOOSE_SEARCH_EDIT)); + + KillTimer (GetHWND (), timer_id); + chooser->SetPackageFilter (value); + chooser->refresh (); + return TRUE; + } + + return FALSE; +} diff --git a/choose.h b/choose.h index 9dc5882..46f0f35 100644 --- a/choose.h +++ b/choose.h @@ -21,6 +21,9 @@ #include "package_meta.h" #include "PickView.h" +#define DEFAULT_TIMER_ID 5 //value doesn't matter, as long as it's unique +#define SEARCH_TIMER_DELAY 500 //in milliseconds + extern bool hasManualSelections; class ChooserPage:public PropertyPage @@ -32,6 +35,8 @@ public: virtual bool OnMessageCmd (int id, HWND hwndctl, UINT code); virtual INT_PTR CALLBACK OnMouseWheel (UINT message, WPARAM wParam, LPARAM lParam); + virtual INT_PTR CALLBACK OnTimerMessage (UINT message, WPARAM wParam, + LPARAM lparam); bool Create (); virtual void OnInit (); @@ -53,20 +58,25 @@ private: void logOnePackageResult(packagemeta const *aPkg); void logResults(); void setPrompt(char const *aPrompt); - PickView *chooser; + void PlaceDialog (bool); + PickView *chooser; static HWND ins_dialog; bool cmd_show_set; bool saved_geom; bool saw_geom_change; WINDOWPLACEMENT window_placement; WINDOWPLACEMENT pre_chooser_placement; + UINT_PTR timer_id; union writer { WINDOWPLACEMENT wp; UINT wpi[sizeof (WINDOWPLACEMENT) / sizeof (UINT)]; }; - void PlaceDialog (bool); + + + + }; #endif /* SETUP_CHOOSE_H */ diff --git a/proppage.cc b/proppage.cc index 8a63104..c03e5f7 100644 --- a/proppage.cc +++ b/proppage.cc @@ -343,7 +343,11 @@ PropertyPage::DialogProc (UINT message, WPARAM wParam, LPARAM lParam) // to the parent of the window that received the scroll, so it would // not work to just process this message there.) return OnMouseWheel (message, wParam, lParam); - break; + + case WM_TIMER: + // similar delegation as with WM_MOUSEWHEEL + return OnTimerMessage (message, wParam, lParam); + default: break; } @@ -366,6 +370,12 @@ PropertyPage::OnMouseWheel (UINT message, WPARAM wParam, LPARAM lParam) return 1; // not handled; define in a derived class to support this } +INT_PTR CALLBACK +PropertyPage::OnTimerMessage (UINT message, WPARAM wParam, LPARAM lParam) +{ + return 1; // not handled; define in a derived class to support this +} + void PropertyPage::setTitleFont () { diff --git a/proppage.h b/proppage.h index 8e2cb40..9424ffc 100644 --- a/proppage.h +++ b/proppage.h @@ -82,6 +82,8 @@ protected: LPARAM lParam); virtual INT_PTR CALLBACK OnMouseWheel (UINT message, WPARAM wParam, LPARAM lParam); + virtual INT_PTR CALLBACK OnTimerMessage (UINT message, WPARAM wParam, + LPARAM lparam); public: PropertyPage ();