Skip to content

Commit

Permalink
directvt#86 WIP: Set unique focus on drag_and_drop
Browse files Browse the repository at this point in the history
  • Loading branch information
o-sdn-o committed Dec 21, 2024
1 parent 98d100f commit b037e12
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 9 deletions.
5 changes: 3 additions & 2 deletions src/netxs/apps/tile.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ namespace netxs::app::tile
boss.remove(applet_ptr);
applet.moveto(dot_00);
world_ptr->bell::signal(tier::request, vtm::events::handoff, what); // Attach to the world.
pro::focus::set(applet_ptr, gear_id_list, solo::off, true); // Refocus.
pro::focus::set(applet_ptr, gear.id, solo::on, true);
boss.base::riseup(tier::release, e2::form::proceed::quit::one, true); // Destroy placeholder.
if (auto new_parent_ptr = applet.parent())
{
Expand Down Expand Up @@ -510,7 +510,8 @@ namespace netxs::app::tile
if (boss.count() == 1) // Only empty pane/slot available.
{
highlight(boss, faux);
pro::focus::off(boss.back()); // Unset focus from node_veer if it is focused.
// Solo focus will be set in pro::d_n_d::proceed.
//pro::focus::off(boss.back()); // Unset focus from node_veer if it is focused.
auto app = app_window(what);
boss.attach(app);
app->bell::signal(tier::anycast, e2::form::upon::started);
Expand Down
14 changes: 7 additions & 7 deletions src/vtm.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -640,7 +640,7 @@ namespace netxs::app::vtm
fp2d coord;
wptr cover;

void proceed(bool keep)
void proceed(bool keep, hids& gear)
{
drags = faux;
boss.bell::signal(tier::anycast, e2::form::prop::lucidity, 0xFF); // Make target opaque.
Expand All @@ -656,7 +656,7 @@ namespace netxs::app::vtm
auto gear_id_list = pro::focus::cut(what.applet);
what.applet->base::detach();
dest.bell::signal(tier::release, vtm::events::d_n_d::drop, what); // Pass core.
pro::focus::set(what.applet, gear_id_list, solo::off, true); // Re set focus.
pro::focus::set(what.applet, gear.id, solo::on, true); // Set unique focus.
boss.base::detach(); // The object kills itself.
}
}
Expand Down Expand Up @@ -686,21 +686,21 @@ namespace netxs::app::vtm
boss.LISTEN(tier::release, hids::events::mouse::button::drag::pull::any, gear, memo)
{
if (!drags) return;
if (gear.meta(hids::anyMod)) proceed(faux);
if (gear.meta(hids::anyMod)) proceed(faux, gear);
else coord = gear.coord - gear.delta.get();
};
boss.LISTEN(tier::release, hids::events::mouse::button::drag::stop::any, gear, memo)
{
if (!drags) return;
if (gear.meta(hids::anyMod)) proceed(faux);
else proceed(true);
if (gear.meta(hids::anyMod)) proceed(faux, gear);
else proceed(true, gear);
gear.setfree();
};
boss.LISTEN(tier::release, hids::events::mouse::button::drag::cancel::any, gear, memo)
{
if (!drags) return;
if (gear.meta(hids::anyMod)) proceed(faux);
else proceed(true);
if (gear.meta(hids::anyMod)) proceed(faux, gear);
else proceed(true, gear);
gear.setfree();
};
boss.LISTEN(tier::release, e2::render::background::prerender, parent_canvas, memo)
Expand Down

0 comments on commit b037e12

Please sign in to comment.