This is just a stab in the dark, seeing as I've been out of practice for quite some time and stumbled drunkenly into this thread. I remember hearing somewhere that when an event is tied to the clicking of an accept/decline, the problem is that it will try to fill the same space before it clears, fail to do so, and then minimize to the side. Not sure why this is different than events independent of one another that don't fire off accept/decline, but it seems to be.
The solution, as I recall and as seems to be suggested by one of my scripts, is to add a wait line before each historic event firing. This basically tells the game to wait on the script long enough for the screen to catch up to the event trigger. One second seems to be sufficient, like so(bold preceding the event is the important part, the rest just shows context):
Code:
;Prompt player for Military(Accept) or choice of Economic/Cultural(Decline)
monitor_event FactionTurnStart FactionIsLocal
and I_CompareCounter policy_timer == 0
and I_CompareCounter military_exhaustion == 0
campaign_wait 1
historic_event policy1 true
end_monitor
;If Accepted, set to Military policy
monitor_event EventCounter EventCounterType policy1_accepted
and I_EventCounter policy1_accepted == 1
set_counter policy_timer 20
set_counter military_policy 1
set_counter economic_policy 0
set_counter cultural_policy 0
set_counter recovery_policy 0
set_counter current_policy 1
set_counter policy_change 1
set_event_counter policy_event_counters 1
;Below lines governs military exhaustion
inc_counter military_exhaustion_compiler 1
set_counter last_policy_delay 3
set_event_counter policy1_accepted 0
campaign_wait 1
historic_event military_policy
end_monitor
;If Declined, prompt for Economic(Accept) or Cultural(Decline)
monitor_event EventCounter EventCounterType policy1_declined
and I_EventCounter policy1_declined == 1
campaign_wait 1
historic_event policy2 true
set_event_counter policy1_declined 0
end_monitor
As a general rule it's not a bad idea to space conflicting and buggy commands with wait times to see if it fixes the problem, since wait times of a second aren't really noticed by a player but is plenty of time for a computer to perform necessary cleanup operations.