Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
4a491ea7
Commit
4a491ea7
authored
Oct 17, 2012
by
Jacek Caban
Committed by
Alexandre Julliard
Oct 17, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Make HTMLInnerWindow the owner of timers.
parent
d1c1f9e8
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
11 additions
and
11 deletions
+11
-11
htmlwindow.c
dlls/mshtml/htmlwindow.c
+3
-3
mshtml_private.h
dlls/mshtml/mshtml_private.h
+2
-2
task.c
dlls/mshtml/task.c
+6
-6
No files found.
dlls/mshtml/htmlwindow.c
View file @
4a491ea7
...
...
@@ -567,7 +567,7 @@ static HRESULT WINAPI HTMLWindow2_clearTimeout(IHTMLWindow2 *iface, LONG timerID
TRACE
(
"(%p)->(%d)
\n
"
,
This
,
timerID
);
return
clear_task_timer
(
&
This
->
inner_window
->
doc
->
basedoc
,
FALSE
,
timerID
);
return
clear_task_timer
(
This
->
inner_window
,
FALSE
,
timerID
);
}
#define MAX_MESSAGE_LEN 2000
...
...
@@ -1243,7 +1243,7 @@ static HRESULT WINAPI HTMLWindow2_clearInterval(IHTMLWindow2 *iface, LONG timerI
TRACE
(
"(%p)->(%d)
\n
"
,
This
,
timerID
);
return
clear_task_timer
(
&
This
->
inner_window
->
doc
->
basedoc
,
TRUE
,
timerID
);
return
clear_task_timer
(
This
->
inner_window
,
TRUE
,
timerID
);
}
static
HRESULT
WINAPI
HTMLWindow2_put_offscreenBuffering
(
IHTMLWindow2
*
iface
,
VARIANT
v
)
...
...
@@ -1563,7 +1563,7 @@ static HRESULT window_set_timer(HTMLInnerWindow *This, VARIANT *expr, LONG msec,
if
(
!
disp
)
return
E_FAIL
;
*
timer_id
=
set_task_timer
(
&
This
->
doc
->
basedoc
,
msec
,
interval
,
disp
);
*
timer_id
=
set_task_timer
(
This
,
msec
,
interval
,
disp
);
IDispatch_Release
(
disp
);
return
S_OK
;
...
...
dlls/mshtml/mshtml_private.h
View file @
4a491ea7
...
...
@@ -980,8 +980,8 @@ LONG get_task_target_magic(void) DECLSPEC_HIDDEN;
void
push_task
(
task_t
*
,
task_proc_t
,
task_proc_t
,
LONG
)
DECLSPEC_HIDDEN
;
void
remove_target_tasks
(
LONG
)
DECLSPEC_HIDDEN
;
DWORD
set_task_timer
(
HTML
Document
*
,
DWORD
,
BOOL
,
IDispatch
*
)
DECLSPEC_HIDDEN
;
HRESULT
clear_task_timer
(
HTML
Document
*
,
BOOL
,
DWORD
)
DECLSPEC_HIDDEN
;
DWORD
set_task_timer
(
HTML
InnerWindow
*
,
DWORD
,
BOOL
,
IDispatch
*
)
DECLSPEC_HIDDEN
;
HRESULT
clear_task_timer
(
HTML
InnerWindow
*
,
BOOL
,
DWORD
)
DECLSPEC_HIDDEN
;
const
char
*
debugstr_variant
(
const
VARIANT
*
)
DECLSPEC_HIDDEN
;
...
...
dlls/mshtml/task.c
View file @
4a491ea7
...
...
@@ -38,7 +38,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
#define TIMER_ID 0x3000
typedef
struct
{
HTML
Document
*
doc
;
HTML
InnerWindow
*
window
;
DWORD
id
;
DWORD
time
;
DWORD
interval
;
...
...
@@ -107,7 +107,7 @@ void remove_target_tasks(LONG target)
LIST_FOR_EACH_SAFE
(
liter
,
ltmp
,
&
thread_data
->
timer_list
)
{
timer
=
LIST_ENTRY
(
liter
,
task_timer_t
,
entry
);
if
(
timer
->
doc
->
task_magic
==
target
)
if
(
timer
->
window
->
task_magic
==
target
)
release_task_timer
(
thread_data
->
thread_hwnd
,
timer
);
}
...
...
@@ -163,7 +163,7 @@ static BOOL queue_timer(thread_data_t *thread_data, task_timer_t *timer)
return
FALSE
;
}
DWORD
set_task_timer
(
HTML
Document
*
doc
,
DWORD
msec
,
BOOL
interval
,
IDispatch
*
disp
)
DWORD
set_task_timer
(
HTML
InnerWindow
*
window
,
DWORD
msec
,
BOOL
interval
,
IDispatch
*
disp
)
{
thread_data_t
*
thread_data
=
get_thread_data
(
TRUE
);
task_timer_t
*
timer
;
...
...
@@ -173,7 +173,7 @@ DWORD set_task_timer(HTMLDocument *doc, DWORD msec, BOOL interval, IDispatch *di
timer
=
heap_alloc
(
sizeof
(
task_timer_t
));
timer
->
id
=
id_cnt
++
;
timer
->
doc
=
doc
;
timer
->
window
=
window
;
timer
->
time
=
tc
+
msec
;
timer
->
interval
=
interval
?
msec
:
0
;
list_init
(
&
timer
->
entry
);
...
...
@@ -187,7 +187,7 @@ DWORD set_task_timer(HTMLDocument *doc, DWORD msec, BOOL interval, IDispatch *di
return
timer
->
id
;
}
HRESULT
clear_task_timer
(
HTML
Document
*
doc
,
BOOL
interval
,
DWORD
id
)
HRESULT
clear_task_timer
(
HTML
InnerWindow
*
window
,
BOOL
interval
,
DWORD
id
)
{
thread_data_t
*
thread_data
=
get_thread_data
(
FALSE
);
task_timer_t
*
iter
;
...
...
@@ -196,7 +196,7 @@ HRESULT clear_task_timer(HTMLDocument *doc, BOOL interval, DWORD id)
return
S_OK
;
LIST_FOR_EACH_ENTRY
(
iter
,
&
thread_data
->
timer_list
,
task_timer_t
,
entry
)
{
if
(
iter
->
id
==
id
&&
iter
->
doc
==
doc
&&
(
iter
->
interval
==
0
)
==
!
interval
)
{
if
(
iter
->
id
==
id
&&
iter
->
window
==
window
&&
!
iter
->
interval
==
!
interval
)
{
release_task_timer
(
thread_data
->
thread_hwnd
,
iter
);
return
S_OK
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment