; Detecting mouse right-clicks.

detect_start:

	mov	eax, 40
	mov	ebx, 00100000b
	int	0x40

   detect_still:
	;mov     eax, 10        ; Работает не совсем корректно, почему хз.
	mov	eax, 23
	mov	ebx, 4
	int	0x40
	;cmp     eax, 6
	;jne     detect_still

	mov	eax, 37
	mov	ebx, 2		; Опрашиваем кнопки мыши
	int	0x40

	test	eax, ebx	; test    eax, 00000010b Интересует только правая кнопка
	jz	detect_still	; Нет - ? Возвращаемся в главный цикл потока

   mouse_btn_up:
	mov	eax, 37
	mov	ebx, 2
	int	0x40

	test	eax, ebx
	jnz	mouse_btn_up

	mov	eax, 37
	xor	ebx, ebx	; mov     ebx, 0
	int	0x40

	mov	ecx, [panel_y_pos]
	shr	ecx, 16
	inc	ecx

	cmp	ax, cx
	jb	detect_still
	add	ecx, 15
	cmp	ax, cx
	ja	detect_still

	shr	eax, 16
	xor	edx, edx	; mov     edx, 1
	inc	edx

   detect_button:
	mov	ebx, edx
	imul	ebx, 6 * 10
; // Alver  26.08.2007 // {
;	add	ebx, 4
	add	ebx, 64
; } \\ Alver \\

	cmp	eax, ebx
	jb	detect_still

	add	ebx, 60 - 1
	cmp	eax, ebx
	ja	@f

	shl	edx, 2
	mov	ecx, [app_list + edx - 4]
	cmp	ecx, -1
	jz	detect_still

	mov	[x_coord], ax

	mov	eax, 37
	xor	ebx, ebx	; mov     ebx, 0
	int	0x40

	mov	[y_coord], ax

	mov	[n_slot], ecx

	mov	eax, 9
	mov	ebx, procinfo_for_detect
	int	0x40

	mov	eax, 51
	mov	ebx, 1
	mov	ecx, context_menu_start
	mov	edx, ctx_menu_stack
	int	0x40

	mov	[ctx_menu_PID], eax

	jmp	detect_still

   @@:
	cmp	edx, [max_applications]
	jae	detect_still
	inc	edx
	jmp	detect_button
