diff options
Diffstat (limited to 'plugins/BasicHistory')
| -rw-r--r-- | plugins/BasicHistory/src/HistoryWindow.cpp | 11 | ||||
| -rw-r--r-- | plugins/BasicHistory/src/HistoryWindow.h | 1 | ||||
| -rw-r--r-- | plugins/BasicHistory/src/HotkeyHelper.cpp | 141 | ||||
| -rw-r--r-- | plugins/BasicHistory/src/HotkeyHelper.h | 1 | 
4 files changed, 66 insertions, 88 deletions
| diff --git a/plugins/BasicHistory/src/HistoryWindow.cpp b/plugins/BasicHistory/src/HistoryWindow.cpp index 98ca26771c..8fefc1062b 100644 --- a/plugins/BasicHistory/src/HistoryWindow.cpp +++ b/plugins/BasicHistory/src/HistoryWindow.cpp @@ -40,7 +40,6 @@ void ResetCList(HWND hWnd);  HistoryWindow::HistoryWindow(HANDLE _hContact) :
  	isDestroyed(true),
 -	OldSplitterProc(0),
  	splitterY(0),
  	splitterOrgY(0),
  	splitterX(0),
 @@ -1174,8 +1173,8 @@ void HistoryWindow::Initialise()  {
  	splitterXhWnd = GetDlgItem(hWnd, IDC_SPLITTER);
  	splitterYhWnd = GetDlgItem(hWnd, IDC_SPLITTERV);
 -	OldSplitterProc = (WNDPROC)SetWindowLongPtr(splitterXhWnd, GWLP_WNDPROC, (LONG_PTR) SplitterSubclassProc);
 -	SetWindowLongPtr(splitterYhWnd, GWLP_WNDPROC, (LONG_PTR) SplitterSubclassProc);
 +	mir_subclassWindow(splitterXhWnd, SplitterSubclassProc);
 +	mir_subclassWindow(splitterYhWnd, SplitterSubclassProc);
  	editWindow = GetDlgItem(hWnd, IDC_EDIT);
  	findWindow = GetDlgItem(hWnd, IDC_FIND_TEXT);
 @@ -1327,10 +1326,6 @@ void HistoryWindow::Destroy()  	hIcon = (HICON)SendMessage(hWnd, WM_SETICON, ICON_SMALL, 0);
  	Skin_ReleaseIcon(hIcon);
 -			
 -	UnregisterHotkeyControl(GetDlgItem(hWnd, IDC_SHOWHIDE));
 -	UnregisterHotkeyControl(GetDlgItem(hWnd, IDC_LIST_CONTACTS));
 -	UnregisterHotkeyControl(findWindow);
  	isDestroyed = true;
  	HistoryWindow::Close(this);
 @@ -1749,7 +1744,7 @@ LRESULT CALLBACK HistoryWindow::SplitterSubclassProc(HWND hwnd, UINT msg, WPARAM  			return 0;
  		}
  	}
 -	return CallWindowProc(dat->OldSplitterProc, hwnd, msg, wParam, lParam);
 +	return mir_callNextSubclass(hwnd, HistoryWindow::SplitterSubclassProc, msg, wParam, lParam);
  }
  void HistoryWindow::EnableWindows(BOOL enable)
 diff --git a/plugins/BasicHistory/src/HistoryWindow.h b/plugins/BasicHistory/src/HistoryWindow.h index afc00c787d..66202937b4 100644 --- a/plugins/BasicHistory/src/HistoryWindow.h +++ b/plugins/BasicHistory/src/HistoryWindow.h @@ -59,7 +59,6 @@ private:  	HICON *eventIcons;
  	int allIconNumber;
  	HICON plusIco, minusIco, findNextIco, findPrevIco, configIco, deleteIco;
 -	WNDPROC OldSplitterProc;
  	bool isContactList;
  	LONG listOryginalPos;
  	bool isLoading;
 diff --git a/plugins/BasicHistory/src/HotkeyHelper.cpp b/plugins/BasicHistory/src/HotkeyHelper.cpp index 29f916ea3c..89db08013e 100644 --- a/plugins/BasicHistory/src/HotkeyHelper.cpp +++ b/plugins/BasicHistory/src/HotkeyHelper.cpp @@ -21,91 +21,76 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.  #include "resource.h"
  #include "Options.h"
 -LRESULT CALLBACK HotkeySubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
 -
 -void RegisterHotkeyControl(HWND control)
 -{
 -	WNDPROC oldProc = (WNDPROC)SetWindowLongPtr(control, GWLP_WNDPROC, (LONG_PTR) HotkeySubclassProc);
 -	SetWindowLongPtr(control, GWLP_USERDATA, (LONG_PTR) oldProc);
 -}
 -
 -void UnregisterHotkeyControl(HWND control)
 -{
 -	WNDPROC oldProc = (WNDPROC)GetWindowLongPtr(control, GWLP_USERDATA);
 -	if(oldProc != NULL)
 -	{
 -		SetWindowLongPtr(control, GWLP_WNDPROC, (LONG_PTR) oldProc);
 -		SetWindowLongPtr(control, GWLP_USERDATA, NULL);
 -	}
 -}
 -
  static bool isPresed = false;
 -LRESULT CALLBACK HotkeySubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 +static LRESULT CALLBACK HotkeySubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
  {
 -	WNDPROC oldProc = (WNDPROC)GetWindowLongPtr(hwnd, GWLP_USERDATA);
 -
  	switch (msg) {
 -		case WM_NCPAINT:
 -			if(Options::instance->noFindBorder && GetDlgCtrlID(hwnd) == IDC_FIND_TEXT)
 -				return 0;
 -			break;
 -		case WM_CHAR:
 -		case WM_SYSCHAR:
 -		case WM_UNICHAR:
 -		case WM_DEADCHAR:
 -		case WM_SYSDEADCHAR:
 -			if(isPresed)
 -				return 0;
 -			break;
 -		case WM_KEYUP:
 -		case WM_SYSKEYUP:
 -			if(isPresed)
 +	case WM_NCPAINT:
 +		if(Options::instance->noFindBorder && GetDlgCtrlID(hwnd) == IDC_FIND_TEXT)
 +			return 0;
 +		break;
 +	case WM_CHAR:
 +	case WM_SYSCHAR:
 +	case WM_UNICHAR:
 +	case WM_DEADCHAR:
 +	case WM_SYSDEADCHAR:
 +		if(isPresed)
 +			return 0;
 +		break;
 +	case WM_KEYUP:
 +	case WM_SYSKEYUP:
 +		if(isPresed)
 +		{
 +			isPresed = false;
 +			return 0;
 +		}
 +		break;
 +	case WM_KEYDOWN:
 +	case WM_SYSKEYDOWN:
 +		{
 +			isPresed = false;
 +			HWND hwndParent = GetParent(hwnd);
 +			MSGFILTER filter;
 +			filter.msg = msg;
 +			filter.lParam = lParam;
 +			filter.wParam = wParam;
 +			filter.nmhdr.hwndFrom = hwnd;
 +			filter.nmhdr.code = EN_MSGFILTER;
 +			filter.nmhdr.idFrom = GetDlgCtrlID(hwnd);
 +			if(SendMessage(hwndParent, WM_NOTIFY, NULL, (LPARAM)&filter))
  			{
 -				isPresed = false;
 +				isPresed = true;
  				return 0;
  			}
 -			break;
 -		case WM_KEYDOWN:
 -		case WM_SYSKEYDOWN:
 -			{
 -				isPresed = false;
 -				HWND hwndParent = GetParent(hwnd);
 -				MSGFILTER filter;
 -				filter.msg = msg;
 -				filter.lParam = lParam;
 -				filter.wParam = wParam;
 -				filter.nmhdr.hwndFrom = hwnd;
 -				filter.nmhdr.code = EN_MSGFILTER;
 -				filter.nmhdr.idFrom = GetDlgCtrlID(hwnd);
 -				if(SendMessage(hwndParent, WM_NOTIFY, NULL, (LPARAM)&filter))
 -				{
 -					isPresed = true;
 -					return 0;
 -				}
 -				LRESULT res = CallWindowProc(oldProc, hwnd, msg, wParam, lParam);
 -				filter.nmhdr.code = CLN_MYSELCHANGED;
 -				SendMessage(hwndParent, WM_NOTIFY, NULL, (LPARAM)&filter);
 -				return res;
 -			}
 -			break;
 -		case WM_LBUTTONDOWN:
 -			{
 -				HWND hwndParent = GetParent(hwnd);
 -				MSGFILTER filter;
 -				filter.msg = msg;
 -				filter.lParam = lParam;
 -				filter.wParam = wParam;
 -				filter.nmhdr.hwndFrom = hwnd;
 -				filter.nmhdr.code = CLN_MYSELCHANGED;
 -				filter.nmhdr.idFrom = GetDlgCtrlID(hwnd);
 +			LRESULT res = mir_callNextSubclass(hwnd, HotkeySubclassProc, msg, wParam, lParam);
 +			filter.nmhdr.code = CLN_MYSELCHANGED;
 +			SendMessage(hwndParent, WM_NOTIFY, NULL, (LPARAM)&filter);
 +			return res;
 +		}
 +		break;
 +	case WM_LBUTTONDOWN:
 +		{
 +			HWND hwndParent = GetParent(hwnd);
 +			MSGFILTER filter;
 +			filter.msg = msg;
 +			filter.lParam = lParam;
 +			filter.wParam = wParam;
 +			filter.nmhdr.hwndFrom = hwnd;
 +			filter.nmhdr.code = CLN_MYSELCHANGED;
 +			filter.nmhdr.idFrom = GetDlgCtrlID(hwnd);
 -				LRESULT res = CallWindowProc(oldProc, hwnd, msg, wParam, lParam);
 -				SendMessage(hwndParent, WM_NOTIFY, NULL, (LPARAM)&filter);
 -				return res;
 -			}
 -			break;
 +			LRESULT res = mir_callNextSubclass(hwnd, HotkeySubclassProc, msg, wParam, lParam);
 +			SendMessage(hwndParent, WM_NOTIFY, NULL, (LPARAM)&filter);
 +			return res;
 +		}
 +		break;
  	}
 -	return CallWindowProc(oldProc, hwnd, msg, wParam, lParam);
 -}
\ No newline at end of file +	return mir_callNextSubclass(hwnd, HotkeySubclassProc, msg, wParam, lParam);
 +}
 +
 +void RegisterHotkeyControl(HWND control)
 +{
 +	mir_subclassWindow(control, HotkeySubclassProc);
 +}
 diff --git a/plugins/BasicHistory/src/HotkeyHelper.h b/plugins/BasicHistory/src/HotkeyHelper.h index f31b1c6666..ab2b80b977 100644 --- a/plugins/BasicHistory/src/HotkeyHelper.h +++ b/plugins/BasicHistory/src/HotkeyHelper.h @@ -21,4 +21,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.  #define CLN_MYSELCHANGED (CLN_FIRST-50)
  void RegisterHotkeyControl(HWND control);
 -void UnregisterHotkeyControl(HWND control);
 | 
